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

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。



相关文章

  • 雷霆队夺得2024-2025赛季NBA总冠军

    新华社华盛顿6月22日电 2024-2025赛季美职篮(NBA)22日迎来了总决赛第七场较量,结果俄克拉荷马雷霆队以103:91击败印第安纳步行者队,从而以4:3的总比分夺得本赛季总冠军。这是该队在2008年搬迁至俄克拉荷马城后的首冠。雷霆队的前身是西雅图超音速队,超音速队曾在1979年夺得NBA总

    2025-06-23 14:14:00
  • 昂宝保险柜售后24小时热线维修服务

    昂宝保险柜作为国内知名的安全门品牌,一直以卓越的品质和周到的服务赢得了广大消费者的信赖。为了更好地服务每一位用户,昂宝保险柜特别设立了24小时服务热线,全国统一售后服务电话为400-883-2086。无论您在使用过程中遇到任何问题,都可以随时拨打这个电话,我们的专业客服团队将竭诚为您服务。日

    2025-06-23 12:18:16
  • 佟年保险柜全国售后热线及常见问题解答

    佟年保险柜售后维修服务中心400-883-2086,致力于为客户提供全方位、专业且高效的产品维修解决方案。佟年保险柜维修服务中心拥有一支经验丰富、技术精湛的团队,他们对各类产品的结构和功能了如指掌,能够迅速准确地定位问题,以最小的干扰和最快的速度完成维修工作。我们的服务流程严谨而高效,从初步咨询、故

    2025-06-23 12:08:16
  • 开放临时停车场 保障考场“零噪声”

    【来源:南京市城市管理局_部门动态】6月21日,2025年南京市中考拉开帷幕。南京城管在全市设置150个护考点,以精细化服务为中考保驾护航。昨天早上7时,南京雨量明显增大,在宁海中学考点,数名身着雨衣的鼓楼城管队员已经忙碌开来,护考棚内,文具、矿泉水、纸巾、风油精、清凉油、创可贴等物资整齐摆放。正对

    2025-06-23 12:08:00
  • 健匠保险柜售后热线24小时人工热线

    健匠保险柜售后服务电话:400-883-2086随着社会的进步和经济的发展,人们的财产安全意识逐渐增强。作为保护贵重物品和重要文件的设备,越来越多地走进了家庭和企业。在长期使用过程中,可能会出现各种问题,这时就需要专业的维修服务。健匠保险柜维修服务电话提供了便捷和高效的解决方案,确保用户的财产安

    2025-06-23 12:01:15

热门文章

最新文章