首页 家电百科 实时讯息 常识
您的位置: 首页 > 常识 >

jdk是什么(JDK、JRE、JVM区别与联系)

100次浏览     发布时间:2024-11-18 10:34:40    

什么是 JDK?

JDK(Java Development Kit)是java开发工具包的缩写,用于制作程序和Java应用程序的软件开发环境。Java 开发人员可以在 Windows、macOS、Solaris 和 Linux 上使用,是一个跨平台编程语言。JDK 帮助他们编写和运行 Java 程序。可以在同一台计算机上安装多个JDK版本。它包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

JDK安装目录

在JDK的安装目录下面有六个文件夹、一个src类库源码压缩包、和其他几个声明文件。其中,真正在运行java时起作用的是以下四个文件夹:bin、include、lib、 jre。

  • bin:最主要的是编译器(javac.exe)
  • include:java和JVM交互用的头文件
  • lib:类库
  • jre:java运行环境

(注意:这里的bin、lib文件夹和jre里的bin、lib是不同的)


什么是 JRE?

JRE(Java Runtime Environment)是java运行环境的缩写,一个旨在运行其他软件的软件(有点绕口)。它包含核心类库、JVM和其他一些必要工具(jre里有运行.class的java.exe)。简单来说,如果你想运行Java程序,你需要JRE。如果您不是程序员,则无需安装 JDK,只需安装JRE即可运行Java程序。不过,所有JDK 版本都与Java Runtime Environment 捆绑在一起,因此无需在 PC 单独下载和安装 JRE。


什么是JVM?

JVM(Java Virtual Machine)是java虚拟机的缩写,是一个引擎,它提供运行时环境驱动Java代码或应用程序。通过使用JRE提供的类、库和文件来运行程序。JVM能够运行用Java和其他语言编写的程序,也可以编译成Java字节码。例如Jython、Jruby、Closure、Apache、Groovy、Kotlin等。它将 Java 字节码转换为机器语言JVM是Java运行环境 (JRE) 的一部分。它不能单独下载和安装。要安装JVM,您需要安装 JRE。JVM的就是Java虚拟机。在许多其他编程语言中,编译器为特定系统生成机器代码。但是,Java 编译器则称为JVM虚拟机生成代码。

JVM

JVM的术语:

类加载器(Class Loader Subsystem)

类加载器读取.class文件并将字节码保存在方法区域中。

方法区(Method Area)

方法区域保存.class文件的类级信息。JVM只有一个方法区域,在所有类之间共享。

堆(Heap)

堆是分配对象的JVM内存部分。JVM为每个.class文件创建一个对象。

栈(Stack)

栈是JVM内存部分,但与堆不同,它用于存储临时变量,即方法参数。

PC寄存器(Program Counter Registers)

PC寄存器用于跟踪已执行的指令和将要执行的指令。因为指令是由线程执行的,所以每个线程都有一个单独的PC寄存器。

JIT编译器(JIT Compiler)

JIT也称为即时编译器。调用方法时使用。JIT将被调用方法的字节码编译成本机代码。当一个方法在本机代码中编译时,JVM直接调用该方法的编译代码,而不是解释它。

本机方法堆栈(Native Internal Threads)

用于访问虚拟机的运行时数据区域的本机方法。

本机方法接口(Native Method Interface)

它使java代码能够在C或C++中用本地应用程序调用或调用。本机应用程序是特定于系统硬件和操作系统的低级语言程序。

垃圾收集(Garbage Collector)

通过JVM使用垃圾收集进行自动内存管理。它从堆中销毁未引用的对象,以便为新对象分配更多内存。


主要区别

  • JDK是一个软件开发工具包,而JRE是一个允许Java程序运行的软件包,JVM则是一个执行字节码的环境。
  • JDK 是平台相关的,JRE 也是平台相关的,但是 JVM 不是平台相关的。
  • JDK 包含开发、调试等工具。JRE 包含类库和其他支持文件,而软件开发工具不包含在 JVM 中。
  • JDK 附带安装程序,另一方面,JRE 仅包含执行源代码的环境,而 JVM 捆绑在软件 JDK 和 JRE 中。

JDK、JRE、JVM关系

JDK的特点

以下是 JDK的重要特性:

  • 它使您能够在单个 catch 块中处理多个扩展。
  • JDK 包含了 JRE 的所有特性。
  • 它包含开发工具,例如编译器、调试器等。
  • JDK 提供了开发和执行 Java 源代码的环境。
  • 它可以安装在 Windows、Unix 和 Mac 操作系统上。
  • 菱形运算符可用于指定泛型类型接口,而不是编写确切的类型接口。

JRE的特点

以下是 JRE 的重要特性:

  • Java 运行时环境是 JVM 实际运行所使用的一组工具。
  • JRE 包含部署技术,包括 Java Web Start 和 Java Plug-in。
  • 开发人员可以轻松地在 JRE 中运行源代码,但不能编写和编译 Java 程序。
  • 它包括集成库,如 Java 数据库连接 (JDBC)、远程方法调用 (RMI)、Java 命名和目录接口 (JNDI) 等。
  • JRE 有 JVM 和 Java HotSpot 虚拟机客户端。

JVM的特点

以下是 JVM 的重要特性:

  • 它使您能够在云环境或设备中运行应用程序。
  • Java 虚拟机将字节码转换为特定于机器的代码。
  • 它提供了基本的 Java 功能,如内存管理、安全性、垃圾收集等。
  • JVM 通过使用 Java Runtime Environment 提供的库和文件来运行程序。
  • JDK 和 JRE 都包含 Java 虚拟机。
  • 它可以逐行执行java程序,因此也称为解释器。
  • JVM 易于定制,例如,您可以为其分配最小和最大内存。
  • 它独立于硬件和操作系统。因此,您可以编写一次 java 程序并在任何地方运行。


因此,现在我们可以看出这样一个关系,JDK包含JRE,而JRE包含JVM。



相关文章
康佳集成灶24小时热线(2025)全国统一客服400热线
2025-05-24 23:25:56
优科斯燃气灶售后热线24小时人工热线
2025-05-24 23:21:48
欧宝燃气灶售后服务概览:热线、公众号与维修中心介绍
2025-05-24 23:16:52
贺喜集成灶售后故障维修客服服务热线是多少实时反馈-今-日-更-新
2025-05-24 23:15:44
博世锅炉售后服务热线(各区/24小时)统一客服热线
2025-05-24 22:21:45