Java Architecture

2025年3月30日 | 阅读 3 分钟

Java 架构是由组件组成的集合,即 JVM、JREJDK集成了解释和编译的过程。它定义了创建 Java 程序的所有过程。Java 架构解释了程序是如何编译和执行的每一个步骤。

Java 架构可以通过以下步骤进行解释

  • Java 中存在编译和解释的过程。
  • Java 编译器将 Java 代码转换为字节码。
  • 之后,JVM 将字节码转换为机器码。
  • 然后机器代码由机器执行。

下图表示了 Java 架构,其中每个步骤都用图形进行了详细说明。

Java Architecture

现在让我们深入了解 Java 架构。我们知道 Java 架构是由组件组成的集合,因此我们将详细讨论每个组件。

Java 架构组件

Java 架构包含三个主要组件

  • Java 虚拟机 (JVM)
  • Java 运行时环境 (JRE)
  • Java 开发工具包 (JDK)

Java 虚拟机

Java 的主要特性是 WORA。WORA 代表 一次编写,到处运行 (Write Once Run Anywhere)。该特性声明我们可以编写一次代码,然后在任何地方或任何操作系统上使用它。我们的 Java 程序之所以能在任何平台上运行,完全是因为 Java 虚拟机。它是 Java 平台的一个组件,为我们提供了执行 Java 程序的坏境。JVM 的主要任务是将字节码转换为机器码。

JVM 首先将代码加载到内存并进行验证。之后,它执行代码并提供运行时环境。 Java 虚拟机 (JVM) 有自己的架构,如下所示

JVM 架构

JVM 是一个抽象机器,它提供了执行 Java 字节码的环境。下图表示了 JVM 的架构。

Java Architecture

类加载器 (ClassLoader): ClassLoader 是用于加载类文件的子系统。当我们运行 Java 代码时,ClassLoader 会首先加载它。

类方法区 (Class Method Area): 在内存中,有一个区域在代码执行期间存储类数据。类方法区保存静态变量、静态方法、静态块和实例方法的信息。

堆 (Heap): 堆区域是 JVM 内存的一部分,在 JVM 启动时创建。其大小不能是固定的,因为在应用程序运行时会增加或减少。

栈 (Stack): 也称为线程栈。它为单个执行线程创建。线程使用此区域来存储局部变量、方法调用和返回等中间结果的数据。

本地栈 (Native Stack): 它包含我们应用程序中使用的所有本地方法的信息。

执行引擎 (Execution Engine): 它是 JVM 的核心部分。其主要任务是执行字节码并执行 Java 类。执行引擎有三个主要组件用于执行 Java 类。

  • 解释器 (Interpreter): 它将字节码转换为本地代码并执行。它按顺序执行代码。解释器不断地解释代码,甚至多次解释相同的方法。这会降低系统性能,为了解决这个问题,引入了 JIT 编译器。
  • JIT 编译器 (JIT Compiler): 引入 JIT 编译器是为了消除解释器的缺点。它提高了执行速度并改善了性能。
  • 垃圾收集器 (Garbage Collector): 垃圾收集器用于管理内存,它是一个用 Java 编写的程序。它分两个阶段工作,即 标记 (Mark)清除 (Sweep)。标记是垃圾收集器识别内存中已使用和未使用部分的区域。清除会将已识别的对象从 标记 中删除。

Java 本地接口

Java 本地接口在 Java 方法调用和本地库之间充当中间人。

Java 运行时环境

它提供了 Java 程序执行的环境。JRE 获取我们的 Java 代码,将其与所需的库集成,然后启动 JVM 来执行它。要了解更多关于 Java 运行时环境的信息,请点击此处

Java 开发工具包

它是用于开发 Java 应用程序和 Applet 的软件开发环境。Java 开发工具包包含 JRE、编译器、解释器或加载器以及多个开发工具。要了解更多关于 Java 开发工具包的信息,请点击此处

这些是 Java 架构的三个主要组件。程序的执行是通过所有这三个组件完成的。