Java基础知识四:JVM体系结构

@高效码农  July 1, 2019

JVM(Java虚拟机)是一个软件。它是一个规范,提供可以执行java字节码的运行时环境。
2019-07-01T03:08:08.png

JVM的操作

JVM主要执行以下操作。

为类属性分配足够的内存空间。
提供可以执行java字节码的运行时环境
将字节代码指令转换为机器级指令。
在安装Java软件时,JVM可单独用于每个操作系统,以便JVM与平台相关。

注意: Java是独立于平台的,但JVM是依赖于平台的,因为每个操作系统都有不同的JVM,它们与JDK Software一起安装。

类加载器子系统:

类加载器子系统将.class文件加载到java堆栈中,之后将为java程序的所有属性分配足够的内存到以下五个内存位置。

  • 堆区
  • 方法区域
  • Java堆栈
  • PC寄存器
  • 本机堆栈

堆区:

将存储哪些对象引用。

方法区域

其中将存储静态变量非静态和静态方法。

Java堆栈

其中将存储所有类的非静态变量,其地址由对象引用引用。

PC寄存器

哪个保存下一个可执行指令的地址,这意味着在执行过程中使用该方法的优先级?

原生堆栈

本机堆栈保存本机代码的指令(除了java代码)本机堆栈依赖于本机库。Native接口将访问本机堆栈和本机库之间的接口。

执行引擎

其中包含Interpreter和JIT编译器,无论何时任何java程序在第一次执行时,解释器都会进入画面,并将逐个字节的代码指令转换为机器级指令JIT编译器(只是及时编译器)将从第二次进入图片如果相同的java程序正在执行,则它向前提供缓冲存储器中可用的进程的机器级指令。

注意: JIT编译器的主要目的是加速java程序的执行。

什么是JIT以及为什么要使用JIT

JIT是由SUN Micro System开发的一组程序,作为JVM的一部分添加,以加快解释阶段。

在旧版本的java编译阶段比解释阶段快得多。业界向SUN Micro System抱怨称编译阶段非常快,解释阶段非常缓慢。

因此,解决这个问题,SUN Micro System开发了一个名为JIT(即时编译器)的程序,并作为JVM的一部分添加,以加快解释阶段。在当前版本的java解释阶段比编译阶段快得多。因此,java是高度解释的编程语言之一。



评论已关闭