虚拟机内存区常用名词

虚拟机内存区常见名词:

栈帧(Frames):

栈帧是用来存储数据和部分结果,以及执行动态链接、方法返回值和异常信息的。
每次方法的调用都会生成一个栈帧,然后将该栈帧进行压栈。当方法结束后,该栈帧将会出栈、被销毁。
无论是正常结束还是异常结束。
每个栈帧都是自己的局部变量表、操作数栈、以及对当前方法类的运行时常量池的引用。
由当前线程创建的帧不能被其它线程引用。
局部变量(Local Variables):
每个栈帧包含一个叫局部变量的变量数组,它的长度在编译的时候确定。
单个局部变量可以保存类型的值boolean,byte,char,short,int, float,reference,或returnAddress。一对局部变量可以包含类型long或值double。
虚拟机使用局部变量在方法调用上传递参数。
例如:当前栈帧中只有 int i = 3; 它就只占一个局部变量。
操作数栈(Operand Stacks)
每个帧包含一个(LIFO)后进先出的栈、称为操作数栈、栈的最大深度在编译时候确定。
虚拟机指令将局部变量或者常量值压栈到操作数栈中、其它虚拟机指令取出它们,最它们进行操作、将结果再压栈到操作数栈中。
例如:后缀表达式求值
1 * 2 + 3 写成后缀表达式就是 1 2 * 3 +
1 先入栈 2 再入栈 当到*号时、弹出1、2进行乘操作 将结果2压栈
然后3再压栈 当到+时、将3、2弹栈、计算结果为5再压栈
动态链接(Dynamic Linking)
每个栈帧都包含对运行时常量池的引用,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值