JDK JRE JVM区别
jdk 5 到 jdk 10各个版本的新特性JDK11变化详解,JDK8升级JDK11详细指南Java Platform Standard Edition 8 DocumentationJDK JDK 即为 Java 开发工具包 (Java Developer Kit),包含编写 Java 程序所必须的编译、运行等开发工具以及 JRE。开发工具如:
- 用于编译 Java 程序的 javac 命令。
- 用于启动 JVM 运行 Java 程序的 java 命令。
- 用于生成文档的 Javadoc 命令。
- 用于打包的 jar 命令等等。
INFO
简单说,就是 JDK 包含 JRE 包含 JVM。
JRE JRE 即为 Java 运行环境,提供了运行 Java 应用程序所必须的软件环境,包含有 Java 虚拟机(JVM)和丰富的系统类库。系统类库即为 Java 提前封装好的功能类,只需拿来直接使用即可,可以大大的提高开发效率。
INFO
简单说,就是 JRE 包含 JVM。
JVM JVM 即为 Java 虚拟机,提供了字节码文件(.class)的运行环境支持。 虚拟机指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的计算机系统,是物理机的软件实现。
JVM的子系统构成
JVM由三个主要的子系统构成:
- 类加载子系统:装载具有适合名称的类或接口
- 运行时数据区(内存结构):包含方法区、Java堆、Java栈、本地方法栈、指令计数器及其他隐含寄存器
- 执行引擎:负责执行包含在已装载的类或接口中的指令
JVM如何实现跨平台
开发人员编写Java代码,并将Java源代码文件(.java文件)通过Java编译器进行编译后形成java字节码文件(.class文件),通过类加载子系统加载到运行时数据区(内存空间),再通过JVM执行引擎进行执行。 运行期环境(JRE)称为Java平台。Java平台由Java虚拟机和Java应用程序接口搭建,Java语言是进入这个平台的通道,用Java语言编写的Java源文件可以运行在这个平台上。这个平台的结构如下: