美文网首页
运行时栈桢结构

运行时栈桢结构

作者: Samlen_Tsoi | 来源:发表于2020-01-18 19:12 被阅读0次

栈桢是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈桢存储了方法的局部变量表操作数栈动态链接方法返回地址等信息。

局部变量表

局部变量表是一组变量存储空间,用于存储方法参数和方法内部定义的局部变量。容量单位为Slot

操作数栈

操作数栈也常称为操作栈,它是一个后入先出栈。

动态连接

每个栈桢都包含一个指向运行时常量池中该栈桢所属方法的引用,持有这个引用是为了支持方法调用过程中的动态连接。符号引用一部分会在类加载阶段或者第一次使用时候就转化为直接引用,这种转化称为静态解析。另外一部分将在每一次运行时期间转化为直接引用,这部分称为动态连接

方法返回地址

当一个方法开始执行后,只有两种方式可以退出该方法:
1、执行引擎遇到任意一个方法返回的字节码指令。
2、在方法执行过程中遇到了异常,并且这个异常没有在方法体内得到处理。
无论哪种方式退出,都需要要回到方法被调用的地方,程序才能继续执行,方法返回时可能需要在栈桢中保存一些信息,用于帮助恢复它的上层方法的执行状态。

相关文章

  • 运行时栈桢结构

    栈桢是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈桢存储了方法的...

  • 【iOS内功】ARM黑魔法—栈桢的入栈和出栈

    栈桢之谜 调用一个子函数,在内存上会入一个新的栈桢。子函数执行完了,当前栈桢会出栈。在运行时,栈桢的出栈和入栈的逻...

  • Java GC 判断对象是否存活(转)

    几个疑问: 栈区:也叫java虚拟机栈,是由一个一个的栈帧组成的后进先出的栈式结构,栈桢中存放方法运行时产生的局部...

  • java虚拟机第八章之运行时栈桢结构

    栈桢是用于虚拟机进行方法调用和方法执行时的数据结构,它是虚拟机运行时数据区虚拟机栈的栈元素。栈元素存储了方...

  • [虚拟机字节码执行引擎]1——栈桢

    本文主要内容 前言 运行时栈桢结构 已经学习了虚拟机内存区域、Class文件结构、类加载机制等知识,是时候学习虚拟...

  • 字节码执行引擎

    一. 运行时栈结构 在介绍运行时栈结构之前,我们先回忆一下虚拟机运行时数据区: 本部分所讲述的运行时栈结构就是对程...

  • [虚拟机字节码执行引擎]2——方法调用

    本文主要内容 方法调用 解析 分派 上一篇文章学习了虚拟机运行时栈桢结构,本文主要学习方法调用。 方法调用 方法调...

  • 虚拟机的方法调用和字节码执行

    目录 一、运行时栈帧结构二、方法调用三、方法执行 一、运行时栈帧结构 栈帧是用于支持虚拟机进行 方法调用 和 方法...

  • 虚拟机字节码执行引擎

    运行时栈帧结构 栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。...

  • 字节码执行机制

    运行时帧栈结构 帧栈 是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素...

网友评论

      本文标题:运行时栈桢结构

      本文链接:https://www.haomeiwen.com/subject/tdxlzctx.html