Files
Hui-s-notebook/虚拟机栈.md
2023-09-10 10:50:53 +08:00

1.0 KiB
Raw Blame History

线程私有 生命周期与线程相同描述的时Java方法执行的线程内存模型每个方法执行时都会同步创建一个帧栈Stack Frame存储局部变量表操作数栈动态链接方法出口等一个方法被调用到执行完毕就对应一个帧栈在虚拟机入栈到出栈

局部变量表

存放编译器可知的基本数据类型对象引用returnAddress类型执行一条字节码指令的地址 这些变量占据的存储空间通过局部变量槽Slot表示Long和Double占据两个变量槽其余的只占用一个 局部变量表的内存空间在编译期间完成分配,进入方法时,该方法分配的局部变量空间是完全确定的,方法运行期间不会改变局部变量表的大小

异常状况

StackOverflowError 线程请求的栈深度超过虚拟机所允许的深度 OutOfMemoryError 栈容量可以动态扩展,栈扩展无法申请到足够内存 HotSpot栈容量无法动态扩展线程申请栈空间失败是会OOM异常