JVM 虚拟机栈
虚拟机栈 : 保存每个 Java 方法调用状态。
·
JVM 虚拟机栈
虚拟机栈 : 保存每个 Java 方法调用状态
- 每次方法调用,都有对应的栈帧 ,压入栈
- 每次方法调用结束后,都有对应栈帧,弹出栈
栈/ 栈帧 :
- 栈 : 由一个个栈帧组成
void a(){
b();
}
void b(){
c();
}
void c(){
}
栈帧包含 :
- 局部变量表 (Local Variables) : 局部变量 , 方法参数
- 操作数栈 (Operand Stack) : 压栈存储操作数
- 动态链接 ((Areference to the run-time constant pool) : 符号引用指向运行时常量池的方法引用
- 方法返回地址 (Return Address) : 返回字节码指令 ; 异常信息
栈可能报两种错误:
- 当线程请求栈的深度 > 虚拟机栈的最大深度时,就报
StackOverFlowError
- 当动态扩展栈 , 无法申请新内存空间时,就报
OutOfMemoryError
栈指向堆
栈中元素指向堆中的对象 : 在栈帧中有个变量,类型为引用类型,如 : Object obj=new Object()
更多推荐
已为社区贡献7条内容
所有评论(0)