Java 开发工具包 (JDK)、Java 虚拟机 (JVM) 和 Java 运行时环境 (JRE) 共同构成了强大的 Java 和Jakarta EE平台组件三重奏,用于开发和运行 Java 应用程序。它们一起工作,让开发人员构建和运行 Java 程序。之前我已经介绍过JDK和JVM。 在本快速概述中,您将了解 JRE,它是 Java 的运行时环境。
实际上,运行时环境是一个旨在运行其他软件的软件。JRE作为Java的运行环境,包含Java类库、Java类加载器和Java虚拟机。在这个系统中:
类加载器负责正确加载类并将它们与核心Java类库连接起来。
JVM负责确保 Java 应用程序拥有在您的设备或云环境中运行和良好运行所需的资源。
JRE主要是这些其他组件的容器,并负责编排它们的活动。
什么是运行时环境?
软件程序需要执行,而要做到这一点,它需要一个运行环境。过去,大多数软件都使用操作系统(OS)作为运行环境。该程序在其所在的任何计算机内运行,并直接依赖操作系统设置来访问资源;内存、磁盘访问和网络访问等资源。Java 运行时环境改变了这一切,至少对于 Java 程序来说是这样。对于 Java 和其他基于 JVM 的语言,JRE 在操作系统和实际程序之间创建了一个中介。JRE 加载类文件并启动虚拟机(JVM),以确保在许多操作系统中以一致的形式访问内存和其他系统资源。
让我们来具体看看Java平台的核心JVM的具体结构。
为了让编译产生的字节码可以更好的解释与执行,一共把JVM分成了主要的6块:JVM解释器,指令系统,寄存器,栈,存储区,碎片回收区。
JVM解释器就是这个虚拟机的处理字段码的CPU。
JVM指令系统同硬件计算机很相似。一条指令分成操作码和操作数两部分组成。操作码为8位二进制数,操作数可以根据需要而定。操作码是为了说明一条指令的功能,所以JVM可以有多达256种不同的操作指令。
JVM有自己的虚拟寄存器,这样就可以快速的和JVM的解释器进行数据交换。为了功能的需要,JVM设置了常用的4个32位寄存器:pc(程序计数器),optop(操作数栈顶指针),frame(当前执行环境指针),vars(指向当前执行环境中第一个局部变量的指针)。
JVM栈是指令执行的时候数据和信息存储的场所和控制中心,它提供给JVM解释器运算所需要的信息。
JVM存储区就是为了把编译过后的字节码等信息存储起来。