JAVA基础——JVM之Java虚拟机栈

Java 虚拟机栈

​ 虚拟机栈描述的是 Java 方法执行的动态内存模型

虚拟机栈的内容

栈帧

​ 在 Java 程序中的每个方法执行时,都会创建一个栈帧,伴随着方法从创建到执行完成,用于存储局部变量表、操作数栈、动态链接、方法出口等

​ 虚拟机栈是存在大小的,当方法所占用的空间溢出,会产生 StackOverflowError

局部变量表

​ 局部表量表的内存空间在编译期即完成分配,主要保存函数的参数以及局部的变量信息,局部变量表中的变量作用域是当前调用的函数,函数调用结束后,随着函数栈帧的销毁,局部变量表也随之销毁,释放空间

​ 局部变量表的最小存储单位是变量槽(Slot),槽的大小与操作系统位数相同,可以放下操作系统位数以内的数据类型

操作数栈

​ 操作数栈可理解为java虚拟机栈中的一个用于计算的临时数据存储区,局部变量表使用索引,操作数栈是通过出栈、入栈来访问,存储的数据与局部变量表一致含 int、long、float、double、reference、returnType,操作数栈中 byte、short、char 压栈前会被转为 int

发布了38 篇原创文章 · 获赞 44 · 访问量 3421

猜你喜欢

转载自blog.csdn.net/scfor333/article/details/103355232
今日推荐