爱奇百科 手机版
您的位置: 首页 > 常识 >

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。



相关文章

  • HG.LOCK指纹锁服务24小时热线-各区售后统一服务实时反馈-今-日-汇-总

    HG.LOCK指纹锁在市场上受到了广泛用户的喜爱和信任,尤其是其全国24小时客服热线,为用户提供了一个方便快捷的服务渠道。近期有许多用户向我们反映了一个共同的问题——HG.LOCK指纹锁是否频繁出现故障的现象?针对这一疑问,我们将从以下几个方面为您解答:HG.LOCK指纹锁售后服务电话:(4

    2025-05-09 09:31:28
  • 盾掌柜防盗门用户客服中心实时反馈全+境+到+达

    盾掌柜防盗门产品使用介绍:便捷安全,操作无忧盾掌柜防盗门作为领域的佼佼者,凭借精湛工艺与前沿科技,为用户珍贵财物保驾护航。当您选择盾掌柜防盗门,全国售后服务点热线号码 400-883-2086 随时待命,无论使用中遇到任何疑问,都能获得专业解答。下面为您详细介绍盾掌柜防盗门的使用方法及相关故障处

    2025-05-09 09:29:58
  • 国祥空调售后服务中心实时反馈-今-日-汇-总

    我们了解,每一个家庭的国祥空调都是守护健康的重要伙伴,因此,我们的使命就是确保这些伙伴始终处于最佳状态。国祥空调售后客服电话:400-883-2086国祥空调由一群经验丰富的专业技术人才组成,他们对国祥空调的内部构造了如指掌,无论是日常维护还是深度修理,都能迅速找到问题所在,并提供精

    2025-05-09 09:29:45
  • 雅若轩智能锁售后服务维修号码实时反馈-今-日-更-新

    雅若轩智能锁在市场上受到了广泛用户的喜爱和信任,尤其是其全国24小时客服热线,为用户提供了一个方便快捷的服务渠道。近期有许多用户向我们反映了一个共同的问题——雅若轩智能锁是否频繁出现故障的现象?针对这一疑问,我们将从以下几个方面为您解答:雅若轩智能锁售后服务电话:(400-883-2086)

    2025-05-09 09:28:14
  • 九阳热水器全国维修服务号码实时反馈全+境+到+达

    九阳热水器的售后维修电话是:400-883-2086。九阳热水器作为智能家居市场的佼佼者,以其先进的技术和优质的产品赢得了广大消费者的青睐。再优质的产品也难免会在使用过程中出现一些问题,因此售后服务的质量就显得尤为重要。为了保障用户的使用体验,九阳热水器提供了专业的售后维修服务,其中一个重要的服务渠

    2025-05-09 09:26:07

热门文章

最新文章