Java虚拟机运行时的栈帧结构

栈帧(Stack frame)是用于虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈的栈元素,存储了方法的局部变量表,操作数栈,动态链接,方法返回地址,以及一些额外附加信息。每一个方法从开始调用到执行完成,就是一个栈帧在虚拟机栈中的入栈到出栈过程。

  1. 局部变量表,是一组变量值存储空间,用于存放方法参数和方法局部变量。
  2. 操作数栈也常称为操作栈,方法执行过程中会有各种字节码指令往操作数栈中存入和取出,也就是入栈和出栈。
  3. 动态链接是指在程序运行期间将常量池中的符号引用转化为直接引用的过程。
  4. 方法返回地址是方法推出后程序返回的位置,方法正常退出时,调用者的PC计数器的值可以作为返回地址,方法异常退出时,返回地址通常由异常处理器决定。
  5. 附加信息是指不在虚拟机规范中定义的,虚拟机实现额外添加的一下栈帧信息,比如与调试相关的信息。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值