一、jvm、jre、jdk阐述
JVM :英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,具体的下文会详细说明。
JRE :英文名称(Java Runtime Environment),我们叫它:Java 运行时环境。它主要包含两个部分,jvm 的标准实现和 Java 的一些基本类库。它相对于 jvm 来说,多出来的是一部分的 Java 类库。
JDK :英文名称(Java Development Kit),Java 开发工具包。jdk 是整个 Java 开发的核心,它集成了 jre 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。
二、三者联系
JDK中包含着JRE,JRE中包含着JVM。JVM无法独立完成class文件的执行,解释class时需要JVM调用类库lib进行解释。JRE目录下有两个文件夹bin和lib,可以简单认为bin里就是jvm,lib是jvm工作时所需的类库,jvm和lib合起来就是JRE。
从程序开发过程来看,我们使用JDK(调用Java API)开发Java程序后,通过JDK的编译程序将我们所编写的Java程序编译成.class文件(或者称为Java字节码),在JRE上运行.class文件,JVM使用lib类库解析.class文件,将其解析后的指令映射到CPU指令集或OS的系统调用。
三、总结
JRE=JVM+Java类库
JDK=JRE+Java开发工具