JVM/JRE/JDK
什么是JVM?
JVM(Java虚拟机)是使您的计算机运行Java程序的抽象机。
运行Java程序时,Java编译器首先将Java代码编译为字节码。然后,JVM将字节码转换为本地机器代码(计算机CPU直接执行的指令集)。
Java是与平台无关的语言。这是因为当您编写Java代码时,它最终是为JVM而不是物理机(计算机)编写的。由于JVM执行与平台无关的Java字节码,因此Java与平台无关。

这一层是面向机器码的,即机器码由谁生成,由谁处理
什么是JRE?
JRE(Java运行时环境)是一个软件包,提供Java类库,Java虚拟机(JVM)和运行Java应用程序所需的其他组件。
JRE是JVM的超集。

这一层是面向程序运行过程中的,即程序运行时必须需要的环境,包括了jvm和引入的包、类
什么是JDK?
JDK(Java开发工具包)是使用Java开发应用程序所需的软件开发工具包。当您下载JDK时,还将同时下载JRE。
除了JRE,JDK还包含许多开发工具(编译器,JavaDoc,Java Debugger等)。

这一层是面向程序员的,程序员使用开发工具编辑编译debug程序(有不同的版本和不同的工具,因此要指定版本),并且执行程序必须的工具。
三者之间的关系:

在程序员开发过程中,他所看到的是一个完整的编写编译执行得到结果的过程,因此jdk包含所有
但是在提交任务以后,程序的运行只需要依赖的类,和变成机器码的方法
在变成机器码以后,怎样执行

浙公网安备 33010602011771号