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 的重要组件:
1) 类加载器
类加载器是用于加载类文件的子系统。它执行三个次要性能:加载、链接和初始化。
2) 办法区
JVM 办法区存储类的构造,如元数据、Java 办法的代码和常量运行时池。
3) 堆
所有对象、数组和实例变量都存储在堆中。此内存在多个线程之间共享。
4)JVM 语言栈
Java 语言堆栈存储局部变量及其局部后果。每个线程都有本人的 JVM 语言堆栈,在创立线程时同时创立。调用办法时会创立一个新框架,并在办法调用过程实现时将其删除。
5) PC 寄存器
PC 寄存器存储以后正在执行的 Java 虚拟机指令的地址。在 Java 中,每个线程都有其独自的 PC 寄存器。
6) 原生办法栈
本机办法栈保留本机代码的指令依赖于本机库。它在本机堆上分配内存或应用任何类型的堆栈。
7) 执行引擎
它是一种用于测试软件、硬件或残缺零碎的软件。测试执行引擎从不携带任何对于被测产品的信息。
8) 原生办法 API
本机办法接口是一个编程框架。它容许在 JVM 中运行的 Java 代码由库和本机应用程序调用。
9) 原生 API 库
本机库是执行引擎所需的本机库(C、C++)的汇合。
JDK、JRE 和 JVM 的区别
以下是 JDK、JRE 和 JVM 之间的次要区别:
JDK | JRE | 虚拟机 |
JDK 英文全称是 Java Development Kit。 | JRE 英文全称是 Java 运行时环境。 | JVM 英文全称是 Java 虚拟机。 |
JDK 是一个用 Java 开发应用程序的软件开发工具包。 | 它是一个软件包,为 Java 类库提供运行 Java 代码所需的组件。 | JVM 执行 Java 字节码并提供执行它的环境。 |
JDK 依赖于平台。 | JRE 也依赖于平台。 | JVM 高度依赖于平台。 |
它蕴含用于开发、调试和监控 Java 代码的工具。 | 它蕴含 JVM 执行程序所需的类库和其余反对文件。 | JVM 中不蕴含软件开发工具。 |
它是 JRE 的超集 | 它是 JDK 的子集。 | JVM 是 JRE 的子集。 |
JDK 使开发人员可能创立可由 JRE 和 JVM 执行和运行的 Java 程序。 | JRE 是创立 JVM 的 Java 局部。 | 它是执行源代码的 Java 平台组件。 |
JDK 附带安装程序。 | JRE 只蕴含执行源代码的环境。 | JVM 捆绑在软件 JDK 和 JRE 中。 |
JDK 附带安装程序。 | JRE 只蕴含执行源代码的环境。 | JVM 捆绑在软件 JDK 和 JRE 中。 |