首先,我们分别对这三者进行阐述。
JVM(Java Virtual Machine)
JVM就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,具体的下文会详细说明。
JRE (Java Runtime Environment)
JRE:英文名称(Java Runtime Environment),我们叫它:Java 运行时环境。它主要包含两个部分,jvm 的标准实现和 Java 的一些基本类库。它相对于 jvm 来说,多出来的是一部分的 Java 类库。
总的说JRE = JVM + 核心类库
JDK (Java Development Kit)
JDK:英文名称(Java Development Kit),Java 开发工具包。jdk 是整个 Java 开发的核心,它集成了 jre 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。
JDK = JRE + JAVA的开发工具。
JDK = JVM + 核心类库 + Java开发工具(javac,jar…)
这三者之间的关系是嵌套关系。
JDK>JRE>JVM
如图所示: