面试官:”请说下 Java 中的 JDK 、JRE 、JVM 这些基本概念和关系!“
此题是考察 Java 程序员对 Java 中 JDK 基本结构的理解和掌握程度,属于 Java 程序员必须掌握的基本知识。
可惜的是,很多开发经验很丰富的 Java 程序员突然遇到此题时,也不能很清晰的回答出来。原因可能是由于基础不牢固,或者随着开发经验的增长,早就忘了这些基础知识。
本文就依据官网的 JDK 结构图,详细解读 JDK 、JRE 和 JVM 的概念和基本关系。
JDK 结构
下面是 JDK 官方的结构图。

从此图中,可以很清晰的看出,JDK 包括 Java Language、Tools 和 JRE。JRE 包括 JVM 和其它类库。
所以说,从结构上看,JDK、JRE 和 JVM 由大到小的包含关系。
基本概念和作用
下面看JDK、JRE 和 JVM的概念和作用。
JDK
JDK 全称 Java Development Kit,即Java开发者工具包,它是支撑Java程序的所有基础设施(Java编译器、Java运行时环境、Java类库等)的超集,它提供了编译和运行 Java 程序所需的环境、工具和资源。
JRE
JRE 全称 Java Runtime Environment,即Java运行时环境,它的主要作用是解释和运行Java 字节码文件。从这个定位可以看出,如果只是运行 Java 程序,只需要安装 JRE 就够了,而如果是开发,就必须要安装 JDK 。
JVM
JVM 全称 Java Virtural Machine,即常说的 Java 虚拟机。它是 Java 实现跨平台最核心的部分,负责解释执行字节码文件。
虚拟机,顾名思义是虚拟的计算机。Java 虚拟机,即 Java 虚拟计算机。它就像一个计算机一样,运行在真实的计算机上,并在 Java 虚拟机之上通过解释和执行字节码文件,运行 Java 程序。
Java程序的编译和运行过程,如下图所示:

当使用 Java 编译器编译 Java 文件时,生成的是与平台无关的字节码,这些字节码是 JVM 可识别、解释和运行的专用文件。就这样,Java 通过在不同的计算机平台上实现支持不同平台的 JVM ,就实现了跨平台的目的,一次编码,各平台都可以运行。
总结
本文通过 JDK 官网的结构图,剖析了JDK、JRE 和 JVM三者之间的关系。从结构上看,JDK、JRE 和 JVM 是由大到小的包含关系。从功能定位上看,JDK是支撑 Java 程序的基础设施的超集(这里的基础设施,指的是Java实现的部分,不包括计算机软硬件等其他部分);JRE 是Java 程序的运行环境; JVM 是 Java 虚拟的计算机, 是 Java 程序和平台之间的桥梁,是跨平台的核心组件。
本文解析了Java开发中JDK、JRE和JVM的基本概念及它们之间的关系:JDK提供开发工具,JRE负责运行环境,JVM则是虚拟机核心。理解这三者有助于提升Java程序的开发和部署效率。
2817





