二、Java 1. JavaSE基础(JDK13) 1.1 了解Java
二、Java
1. JavaSE基础(JDK13)
1.1 了解Java
1.1.1 Java语言概述
创始人:Sun Microsystems 公司的 James Gosling(外号:高司令)
光是看发型你就知道他为啥叫Java之父了。
Java: 在1990年开始开发,1995年上线。
Java始于C++同样都是面向对象的编程语言,但Java摒弃了C++里面晦涩的多继承,指针等概念。
所以学过C或者C++的小伙伴都乐开了花。
Java的三种版本:
- Java SE(Java Standard Edition):Java标准版,现在主要供初学者使用,为JavaEE提供基础。
- Java EE(Java Enterprise Edition):Java企业级,实际生产开发所用到的版本。
- Java ME(Java Micro Edition):被Android代替了,移动端现在都是学完Java语法直奔Android。
1.1.2 Java语言特性
特性一共有五个:
- 简单性:Java语言底层采用C++语言实现,相对于C++来说,Java是简单的,在Java语言中程序员不需要再操作复杂的指针(指针的操作是很复杂的),继承方面也是只支持单继承(C++语言是一种半面向对象的编程语言,支持多继承,多继承会导致关系很复杂),在很多方面进行了简化。
- 面向对象:Java中提供了封装、继承、多态等面向对象的机制。
- 健壮性:在C++程序当中的无用数据/垃圾数据需要编程人员手动释放,当忘记释放内存的时候,会导致内存使用率降低,影响程序的执行;在Java语言当中这种问题得到了解决,因为Java语言引入了自动垃圾回收机制(GC机制),Java程序启动了一个单独的垃圾回收线程,时刻监测内存使用情况,在特定时机会回收/释放垃圾数据,这样会让内存时刻处于最好的状态。
- 多线程:Java语言支持多个线程同时并发执行,同时也提供了多线程环境下的安全机制。
- 可移植性/跨平台:可移植性/跨平台表示Java语言只需要编写/编译一次,依靠JVM(Java虚拟机)即可处处行。Java代码既可以运行在windows的环境下,又可以运行在Linux的环境下而不需要修改Java源程序。
1.1.3 JDK、JRE、JVM三者关系
- JDK(Java Development Kit ,Java开发工具箱): 是Java语言的软件开发工具包。它是每一个Java软件开发人员必须安装的。JDK安装之后,它会自带一个JRE,因为软件开发人员编写完代码之后总是要运行的。如果只是在这台机器上运行Java 程序,则不需要安装JDK,只需要安装JRE即可。
- JRE(Java Runtime Environment ,Java运行环境):运行JAVA程序所必须的环境的集合,包含JVM 标准实现及Java核心类库。
- JVM(Java Virtual Machine ,Java 虚拟机): JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM是实现Java语言跨平台的法宝。
关系:JDK包括JRE,JRE包括JVM。
JVM是不能独立安装的。
JRE和JDK都是可以独立安装的。
有单独的JDK安装包。
也有单独的JRE安装包。
但没有单独的JVM安装包。
安装JDK的时候:JRE就自动安装了,同时JRE内部的JVM也就自动安装了。
安装JRE的时候:JVM也就自动安装了。
问题1:假设你在软件公司开发了一个新的软件,现在要去客户那边给客户把项目部署一下,把项目跑起来,你需要安装JDK吗?
只需要安装JRE就行了,JRE体积很小,安装非常便捷快速。
问题2:为什么安装JDK的时候会自带一个JRE?
因为java程序员开发完程序之后,要测试这个程序,让这个程序运行起来,需要JRE。所以JDK安装的时候内部自带一个JRE。
1.1.4 了解Java的加载与执行
①:把编写好java代码将文件拓展名改成 “.java” 这个文件就是java源文件了。
②:使用 “javac” 命令对java源文件编译,完成后会生成 “.class” 文件,这种文件就叫字节码文件,这个过程就叫做编译。
③:类加载器负责动态加载".class"文件到Java虚拟机的内存空间中。
④:虚拟机解释器对字节码进行解释,最终解释为二进制码,然后操作系统通过执行二进制指令来和硬件平台完成交互。
⑤:如下图不同的操作系统对应不同的JVM以此Java便实现了跨平台的特性。