虚拟机字节码执行引擎

Posted BINGJJFLY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚拟机字节码执行引擎相关的知识,希望对你有一定的参考价值。

引言

  执行引擎在执行Java代码时可能会有解释执行(解释器执行)和编译执行(JIT产生本地代码执行)。

运行时栈帧结构

  栈帧存储了局部变量表、操作数栈、动态链接、方法返回地址。执行引擎运行的所有字节码指令都只针对虚拟机栈顶的栈帧而言。

局部变量表

  局部变量表(Local Variable Table)是一组变量值存储空间,用于存放方法参数、方法内部定义的局部变量。

  虚拟机通过索引定位方式使用局部变量表,索引范围在0~max_locals(属于Code属性,局部变量表的最大Slot数量),如果访问32位数据类型变量时,索引 n 代表使用第 n 个Slot,如果是64位数据类型变量(double、long),代表使用 n 和 n + 1 个Slot。

  局部变量不赋初始值是不会有零值的。

 

以上是关于虚拟机字节码执行引擎的主要内容,如果未能解决你的问题,请参考以下文章

Java虚拟机--虚拟机字节码执行引擎

Java虚拟机-字节码执行引擎

虚拟机字节码执行引擎

虚拟机字节码执行引擎

深入理解Java虚拟机06--虚拟机字节码执行引擎

虚拟机字节码执行引擎