文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

哪五大元素组成JVM结构

2023-06-17 14:34

关注

这篇文章将为大家详细讲解有关哪五大元素组成JVM结构,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

这里和大家重点描述一下JVM结构的组成和用法,JVM结构由五个部分组成,他们分别是一组指令集、一组寄存器、一个栈、一个无用单元收集堆(Garbage-collected-heap)、一个方法区域。

JVM结构组成

虚拟机JVM结构由寄存器、栈、废区收集堆、存储区和指令集五部分组成。下面我们将逐一作出介绍。

1.寄存器(Registers)

同其他微处理器的寄存器一样,JVM机构的寄存器用来存放当前系统状态。然而,基于移植性要求,JVM拥有的寄存器数目不能过多。否则,对于任何本身的寄存器个数小于JVM的移植目标机,要用常规存储来模拟高速寄存器,是比较困难的。同时JVM是基于栈(Stack)的,这也使得它拥有的寄存器较少。

JVM的寄存器包括下面四个:

(1)PC程序计数寄存器

(2)optop操作数栈栈顶地址寄存器。

(3)frame当前执行环境地址寄存器。

(4)vars局部变量首地址寄存器。

这些寄存器长度均为32位。其中PC用来记录程序执行步骤,其余optop,frame,vars都存放JVM栈中对应地址,用来快速获取当前执行所需的信息。

2.栈(Stack)

JVM机构是以栈为基本存储机制的处理机。栈的特点是先进后出(FILO)。对每个类的每个方法,JVM都定义一定的栈空间,包含下面三种信息:

(1)LocalVariables局部变量

这是一个记录各方法局部变量的数组,其初始地址存放在vars寄存器中。每一个数组元素的长度均为32位。若变量长度超过32位,如双精度浮点变量或长整型变量,则占据两个元素的空间64位。

(2)ExecutionEnviroment执行环境

包含代表当前方法的栈的当前状态。存储的信息有:

◆激活的前一个方法。

   ◆指向局部变量区的指针。

◆指向操作数栈顶和栈底的指针。

执行环境是执行方法的控制中心,为解释执行和重新编译提供必要的信息。例如,解释器执行JVM的指令iadd,将两整型数相加,执行分为若干步。首先,解释器从寄存器frame中获得当前执行环境。然后,在当前执行环境中指向操作数栈顶的指针,取出要相加的两数。***还要将所加得的结果回送入栈。

(3)OperandStack操作栈

这是一个以32位为单位长度,用来存储JVM指令的参数的区域。

3.废区收集堆(Garbage-CollectedHeap)

所有的类被实例化时,所获得的存储空间都是从收集堆中分配的。此外,这个堆还要负责无用空间的回收使用。出于移植性和安全性考虑,Java不赋予程序设计员管理内存空间的权力。因而,在编译用new命令申请新对象存储空间后,由解释器负责跟踪记录这一块内存的使用情况。当使用结束时,回收空间送回堆中。在Sun公司的Java和HotJava环境中,这样的“废区收集”都是作为后台线程运行的,保证了系统运行的高效性。

4.存储区(MemoryArea)

JVM机构有两个重要的存储区域,即方法区(methodarea)和常数池区(constantpoolarea)。

方法区存放的是类中定义的各方法的二进制字节码。常数池区存放的则是方法名、类名、域名以及字符串常数。

5.指令集(InstructionSet)

指令集是JVM执行的操作码的集合。Java编译器就是将Java源程序转换成JVM的程序:一组JVM指令。

JVM指令都由一个操作码(opcode)带上零个、一个或两个操作数(operand)组成。操作数长度不尽相同,以8位为基本长度,超过8位时按BigEndian的顺序截断组合,即高位存放在低地址字节中,而低位存放在高地址字节中。操作码长度均为8位。这限制了指令种类最多只能为256(28)种。目前已经被定义使用的操作码有160种,它们包括栈操作、数组操作、算术运算、逻辑运算、数据类型转换、控制流程操作、断点和异常处理等丰富而详尽的内容,这里不再一一赘述。

关于哪五大元素组成JVM结构就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯