JDK如何运作?
标题JDK 功能
以下是JDK的重要组件:
-
JDK 和 JRE:程序员通过使用JDK 创建由 JRE 运行的 Java 程序,其中包括 JVM 和类库。
-
类库:是一组可动态加载的库,Java 程序在运行时调用。
-
编译器:是一个Java程序,开发人员的文本文件通过编译器编译成Java类文件。编译器给出的常见输出形式,包含Java字节码。在 Java中,主要的编译器是 Javac。
-
调试器:调试器是一个 Java 程序,开发人员通过调试器测试和调试 Java 程序。 JavaDoc:
-
JavaDoc 是 Sun Microsystems 为 Java 制作的文档。JavaDoc 可用于从源程序生成 HTML 文件中的
API 文档
JRE如何运作?
JRE 功能
JRE 有一个 JVM 实例、库类和开发工具。编写和编译 Java 代码后,编译器会生成一个包含字节码的类文件。
以下是 JRE 的重要组成部分:
- 类加载器:类加载器加载运行 Java 程序所需的各种类。JVM 使用三个类加载器,称为引导类加载器、扩展类加载器和系统类加载器。
- 字节码验证器:字节码验证器验证字节码,使代码不会干扰解释器。
- 解释器:一旦加载类并验证代码,解释器就会逐行读取代码。
- 运行时间:运行时间是主要用于编程的系统,用于描述特定程序运行的时间段。
- 硬件:一旦你编译了 Java 本机代码,它就会在特定的硬件平台上运行。
这样,Java 程序就在 JRE 中运行。
JVM如何运作?
在这里插入图片描述
JVM 功能
以下是 JVM 的重要组件:
- 类加载器
类加载器是用于加载类文件的子系统。它执行三个主要功能:加载、链接和初始化。 - 方法区
JVM 方法区存储类的结构,如元数据、Java 方法的代码和常量运行时池。
- 堆
所有对象、数组和实例变量都存储在堆中。此内存在多个线程之间共享。
4)JVM语言栈
Java 语言堆栈存储局部变量及其部分结果。每个线程都有自己的 JVM 语言堆栈,在创建线程时同时创建。调用方法时会创建一个新框架,并在方法调用过程完成时将其删除。
- PC 寄存器
PC 寄存器存储当前正在执行的 Java 虚拟机指令的地址。在 Java 中,每个线程都有其单独的 PC 寄存器。
- 原生方法栈
本机方法栈保存本机代码的指令依赖于本机库。它在本机堆上分配内存或使用任何类型的堆栈。
- 执行引擎
它是一种用于测试软件、硬件或完整系统的软件。测试执行引擎从不携带任何关于被测产品的信息。
- 原生方法API
本机方法接口是一个编程框架。它允许在 JVM 中运行的 Java 代码由库和本机应用程序调用。
- 原生API库
本机库是执行引擎所需的本机库(C、C++)的集合。