JDK、JRE 和 JVM 有什么用,它们是怎样运行的

本文详细介绍了JDK、JRE和JVM的功能及运作方式,包括它们各自的组成部分,如类库、编译器、调试器、类加载器、方法区等,并阐述了三者之间的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JDK如何运作?在这里插入图片描述

标题JDK 功能

以下是JDK的重要组件:

  1. JDK 和 JRE:程序员通过使用JDK 创建由 JRE 运行的 Java 程序,其中包括 JVM 和类库。

  2. 类库:是一组可动态加载的库,Java 程序在运行时调用。

  3. 编译器:是一个Java程序,开发人员的文本文件通过编译器编译成Java类文件。编译器给出的常见输出形式,包含Java字节码。在 Java中,主要的编译器是 Javac。

  4. 调试器:调试器是一个 Java 程序,开发人员通过调试器测试和调试 Java 程序。 JavaDoc:

  5. JavaDoc 是 Sun Microsystems 为 Java 制作的文档。JavaDoc 可用于从源程序生成 HTML 文件中的
    API 文档

JRE如何运作?

在这里插入图片描述

JRE 功能

JRE 有一个 JVM 实例、库类和开发工具。编写和编译 Java 代码后,编译器会生成一个包含字节码的类文件。
以下是 JRE 的重要组成部分:

  1. 类加载器:类加载器加载运行 Java 程序所需的各种类。JVM 使用三个类加载器,称为引导类加载器、扩展类加载器和系统类加载器。
  2. 字节码验证器:字节码验证器验证字节码,使代码不会干扰解释器。
  3. 解释器:一旦加载类并验证代码,解释器就会逐行读取代码。
  4. 运行时间:运行时间是主要用于编程的系统,用于描述特定程序运行的时间段。
  5. 硬件:一旦你编译了 Java 本机代码,它就会在特定的硬件平台上运行。
    这样,Java 程序就在 JRE 中运行。

JVM如何运作?

在这里插入图片描述
在这里插入图片描述

JVM 功能

以下是 JVM 的重要组件:

  1. 类加载器
    类加载器是用于加载类文件的子系统。它执行三个主要功能:加载、链接和初始化。
  2. 方法区

JVM 方法区存储类的结构,如元数据、Java 方法的代码和常量运行时池。

所有对象、数组和实例变量都存储在堆中。此内存在多个线程之间共享。

4)JVM语言栈

Java 语言堆栈存储局部变量及其部分结果。每个线程都有自己的 JVM 语言堆栈,在创建线程时同时创建。调用方法时会创建一个新框架,并在方法调用过程完成时将其删除。

  1. PC 寄存器

PC 寄存器存储当前正在执行的 Java 虚拟机指令的地址。在 Java 中,每个线程都有其单独的 PC 寄存器。

  1. 原生方法栈

本机方法栈保存本机代码的指令依赖于本机库。它在本机堆上分配内存或使用任何类型的堆栈。

  1. 执行引擎

它是一种用于测试软件、硬件或完整系统的软件。测试执行引擎从不携带任何关于被测产品的信息。

  1. 原生方法API

本机方法接口是一个编程框架。它允许在 JVM 中运行的 Java 代码由库和本机应用程序调用。

  1. 原生API库

本机库是执行引擎所需的本机库(C、C++)的集合。

JDK、JRE 和 JVM 的区别

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值