JavaSE核心技术
Java的初识
JDK,JRE和JVM
1.简介
-
JDK(Java Development Kit)
定义:全称Java Development Kit,是Java语言的软件开发工具包,它提供了Java的开发环境和运行环境。
内容:包括Java运行环境(JRE)、Java工具(如javac编译器、java运行命令等)和Java基础类库。
-
JRE(Java Runtime Environment)
定义:全称Java Runtime Environment,是Java的运行环境,提供了在计算机上运行Java应用程序所需的最小环境。
内容:包括Java虚拟机(JVM)、Java平台核心类库和支持文件。
-
JVM(Java Virtual Machine)
定义:全称Java Virtual Machine,是Java虚拟机的缩写,是一个虚构出来的计算机,用于执行Java字节码。
内容:包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。
2.区别
-
JDK:主要用于Java程序的开发,提供了从编写、编译到运行Java程序所需的一切工具和环境。
-
JRE:用于运行Java程序,提供了Java程序运行时的必要环境,包括JVM和Java核心类库。
-
JVM:是Java程序运行的核心,负责将Java字节码转换为机器码并执行,实现了Java的跨平台特性。
3.联系
- 包含关系:JDK包含了JRE,而JRE又包含了JVM。这种关系可以表示为JDK > JRE > JVM。
- 功能互补:JDK提供了完整的Java开发环境,包括开发工具和运行环境;JRE提供了Java程序运行时的必要环境;JVM则是Java程序运行的核心,负责将Java字节码转换为机器码并执行。这三者共同构成了Java程序的开发、运行和执行的完整体系。
- 跨平台特性:JVM是Java跨平台的核心,通过JVM,Java程序可以在不同的操作系统上运行而无需修改源代码。这种跨平台特性是Java语言的重要优势之一。
JDK的安装配置
安装
- 建议:安装路径不要有中文或者空格等特殊符号。
安装步骤:
-
双击jdk-8_windows-x64_bin.exe文件,并单击下一步。
-
修改安装路径,自定义。
-
将安装路径修改为D:\develop_tools\jdk\jdk-版本号\,并单击下一步。
-
稍后几秒,安装完成。
配置环境变量
- 打开系统属性:在Windows中,右键点击“此电脑”或“计算机”,选择“属性”,然后点击“高级系统设置”,再点击“环境变量”。
- 配置JAVA_HOME在:“系统变量”区域,点击“新建”按钮。变量名填写
JAVA_HOME
,变量值填写JDK的安装路径(例如C:\Program Files\Java\jdk-11.0.13
)。 - 配置PATH:找到名为
Path
的系统变量,点击“编辑”按钮。在变量值的末尾添加%JAVA_HOME%\bin
(注意前面要有分号分隔符)。 - 保存并退出:点击“确定”按钮保存更改,并关闭所有打开的对话框。
验证安装
- 打开命令提示符(CMD),输入
java -version
和javac -version
命令,如果安装成功,将显示Java和Java编译器的版本信息。
Java编译和运行的命令
编译命令
编译命令:javac
-
功能:将Java源文件(.java文件)编译成Java字节码文件(.class文件)。
-
用法:在命令行中,进入包含Java源文件的目录,然后输入
javac 文件名.java
。例如,如果有一个名为Demo.java
的源文件,则编译命令为javac Demo.java
。注意事项
-
确保JDK已经正确安装,并且
javac
命令在系统的PATH环境变量中。 -
编译时,如果源文件中有语法错误,
javac
会报错,并指出错误的位置。 -
编译成功后,会在同一目录下生成相应的.class文件。
运行命令
运行命令:java
-
功能:运行Java字节码文件(.class文件),由Java虚拟机(JVM)对字节码进行解释和执行。
-
用法:在命令行中,进入包含.class文件的目录,然后输入
java 类名
(注意不带.class后缀)。例如,如果有一个名为Demo
的类(即Demo.class文件),则运行命令为java Demo
。注意事项
-
确保JDK已经正确安装,并且
java
命令在系统的PATH环境变量中。 -
运行时,JVM会在当前目录的上一级目录(即类路径)中查找类文件,如果找不到,会报错。
-
如果需要指定类路径,可以使用
-cp
或-classpath
选项,后跟类路径的值。
总结
JDK的编译和运行命令是Java开发中的基础命令,掌握它们对于进行Java编程至关重要。编译命令javac用于将Java源文件编译成字节码文件,而运行命令java则用于执行这些字节码文件。在使用这些命令时,需要注意JDK的安装和配置,以及命令的语法和用法。
Java跨平台原理
1. 编译成中间代码(字节码)
- 编译过程:Java源代码(.java文件)首先被编译成中间代码,即字节码(.class文件)。这一过程是通过Java编译器(javac)完成的。
- 平台无关性:字节码是一种与特定平台无关的代码,它既不是针对任何特定硬件的机器码,也不是依赖于任何操作系统的代码。因此,字节码可以在任何安装了Java虚拟机(JVM)的系统上执行。
2. Java虚拟机(JVM)
- 定义与功能:JVM是一个可以执行Java字节码的虚拟计算机。它模拟了各种计算机功能,使得Java程序能够在不同平台上运行而无需修改源代码。
- 平台特定实现:虽然JVM本身是一个规范,但每个操作系统都有对应的JVM实现。这些实现将字节码转换为特定平台的机器码,从而实现了Java程序的跨平台运行。
- 性能优化:JVM还包含了即时编译器(JIT),它可以将频繁执行的字节码编译成本地机器码,以提高程序的执行效率。
3. 丰富的标准库和API
- 标准库:Java提供了一个丰富的标准库,这些库是用Java编写的,对所有平台都是相同的。这意味着Java程序可以利用这些标准库来进行文件操作、网络通信等,而不必担心底层操作系统的差异。
- 抽象操作系统接口:Java还提供了一套抽象的接口来代表底层操作系统的功能,这样Java程序就可以通过这些接口与操作系统交互,而不需要直接与操作系统打交道。
4. 跨平台性带来的优势
- 灵活性:Java程序只需要编译一次,就可以在任何支持JVM的操作系统上运行,这大大提高了开发效率和灵活性。
- 广泛应用:由于Java的跨平台性,它被广泛用于开发各种类型的应用程序,包括桌面应用程序、Web应用程序、移动应用程序以及企业级应用程序等。
5. 注意事项
- JVM的特定性:虽然Java程序本身是跨平台的,但JVM并不是。不同的操作系统需要安装对应版本的JVM才能运行Java程序。
- 性能差异:开发者需要考虑到不同平台上可能存在的性能差异,以及确保使用的第三方库和工具也是跨平台的。