JDK、JRE、JVM 的区别是什么

原创admin 分类:热门问答 1

JDK、JRE、JVM 的区别是什么

JDK、JRE 和 JVM 是 Java 编程语言相关联的三个不同组件,它们在 Java 程序的开发和运行中扮演着不同的角色。

JDK(Java Development Kit)

  • 定义:JDK 是 Java 开发工具包,它包含了编写 Java 程序所需的编译器(javac)、运行时环境(JRE)、工具和库。
  • 目的:JDK 使开发者能够开发 Java 应用程序。
  • 核心类与方法:JDK 中的核心类和方法分布在 java.lang、java.util 等包中,例如 String 类、ArrayList 类等。

JRE(Java Runtime Environment)

  • 定义:JRE 是 Java 程序的运行时环境,包括 JVM 和 Java 类库。它提供了运行 Java 程序所需的所有资源。
  • 目的:JRE 确保 Java 程序能够在不同的操作系统上运行。
  • 核心类与方法:JRE 包含的核心类和方法是 Java 标准库的一部分,如 java.io、java.net 等。

JVM(Java Virtual Machine)

  • 定义:JVM 是一个虚拟机,它负责执行 Java 字节码文件。它是 Java 跨平台特性的核心。
  • 目的:JVM 使得 Java 程序能够在任何安装了 JVM 的平台上运行,无需修改源代码。
  • 核心类与方法:JVM 本身不包含 Java 类库,它执行的是编译后的字节码(.class 文件)。

区别对比表格

特性 JDK JRE JVM
定义 开发工具包,包含编译器、工具、库和 JRE。 运行时环境,包含 JVM 和 Java 类库。 虚拟机,执行 Java 字节码。
目的 用于开发 Java 应用程序。 用于运行 Java 应用程序。 使 Java 程序跨平台运行。
包含组件 javac 编译器、JRE、工具和库。 JVM、Java 类库。 仅包含执行字节码的虚拟机。
使用场景 Java 程序的开发环境。 Java 程序的生产环境(运行时)。 任何需要运行 Java 程序的系统环境。

代码案例1(使用 JDK 编译 Java 程序):

// HelloWorld.java
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

使用 JDK 中的 javac 编译器编译上述代码:

javac HelloWorld.java

这将生成一个 HelloWorld.class 文件,该文件包含 JVM 可以执行的字节码。

代码案例2(运行 Java 程序): 使用 JRE 运行上例中编译的 HelloWorld.class 文件:

java HelloWorld

JVM 将加载 HelloWorld.class 文件并执行其中的字节码,输出 "Hello, World!"。

猜你喜欢

领取相关Java架构师视频资料

网络安全学习平台视频资料