码迷,mamicode.com
首页 > 编程语言 > 详细

java虚拟机内存区常用名词解释

时间:2019-02-22 00:34:37      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:lifo   异常   mic   后缀   linking   long   动态链接   bool   返回   

虚拟机内存区常见名词:

栈帧(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)

每个栈帧都包含对运行时常量池的引用,

java虚拟机内存区常用名词解释

标签:lifo   异常   mic   后缀   linking   long   动态链接   bool   返回   

原文地址:https://www.cnblogs.com/evildoerdb/p/10415952.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!