jvm中的栈

这里的栈,是jvm中的一块内存区域,存储结构和数据结构中的栈一样,遵循先进后出原则,存储的内容是栈帧。栈帧:当方法被调用的时候,会将该放方法执行过程中的相关信息存储进栈帧,也就是说存储被调用的方法的信息。当方法被执行完(正常返回或者抛出异常)之后,该方法对应的栈帧就会从栈中移除。

栈帧中存储的内容:

1:局部变量表

存储方法中的局部变量,包括方法参数,基本数据类型变量,对象引用等,表的大小在编译期就已经确定(),通过字节码指令中的max_locals属性指定

2:操作数栈

作为方法执行过程中的临时数据存储区,用于字节码指令的运算操作。就是方法运行时候所涉及到的数据,涉及到的数据放在操作数栈中,例如:执行iadd(整数加法)时,会从操作数栈弹出两个整数,相加后将结果压回栈中。

3:方法返回地址,记录该方法被调用执行结束后,应该返回到的地址(即调用该方法的指令的下一条指令地址),确保上层方法能继续执行

4:动态链接(Dynamic Linking)指向当前方法在运行时常量池中的引用,用于将字节码中的符号引用转换为直接引用(支持多态和动态绑定)。

相关推荐
wuminyu12 小时前
虚拟线程底层ForkJoinPool的工作窃取算法机制
java·linux·c语言·jvm·c++
leisoo809713 小时前
股票数据本地化存储实战:JSON、数据库与列式存储的方案对比
jvm·数据库·json
SamChan9017 小时前
PDF翻译中的并发控制:用Semaphore防止API限流与资源耗尽
java·jvm·pdf
snow@li19 小时前
Java:跨平台原理与JDK、JRE、JVM全景深度解析
java·开发语言·jvm
Livia要学习19 小时前
Python闭包
开发语言·jvm·python
一韦以航.19 小时前
C/C++ 基础深挖:strlen 与 sizeof 全方位对比区别
c语言·jvm·c++·算法·面试·c
行者-全栈开发2 天前
美团后端开发面试题全集(2026最新版):HashMap、JVM、MySQL、Redis高频考点深度解析
jvm·hashmap·java面试题·后端开发·redis缓存·mysql索引·面经汇总
豆沙沙包?2 天前
C++-程序的内存模型(P84-P88)
java·jvm·c++
未秃头的程序猿2 天前
凌晨3点被叫醒:线上OOM,我用这套流程40分钟定位根因
java·jvm·后端
执笔画流年呀2 天前
JVM虚拟机
jvm