jvm方法返回相关指令ireturn,areturn,return等分析

正文

看图:

做的事情如下:

复制代码
1:弹出当前的方法栈帧
2:获取上一个方法
3:从当前方法的操作数栈中获取执行结果,并推送到上一个方法的操作数栈中

对应的伪代码:

java 复制代码
@Override
public void execute(Frame frame) {
    Thread thread = frame.thread();
    Frame currentFrame = thread.popFrame();
    Frame invokerFrame = thread.topFrame();
    long val = currentFrame.operandStack().popLong();
    invokerFrame.operandStack().pushLong(val);
}

这样执行之后,上一个方法就可以通过store指令,将方法执行的结果存储到自己的局部变量表对应的slot中。就比如下边的例子

相关推荐
小马爱打代码44 分钟前
面试题:内存模型与垃圾回收深度解析
jvm
cfm_29144 小时前
JVM底层源码深度解析:读写屏障(Read/Write Barrier)
jvm
wuminyu5 小时前
Java世界中StringTable源码剖析
java·linux·c语言·jvm·c++
醉颜凉6 小时前
Elasticsearch性能优化:JVM GC调优全攻略,彻底解决集群卡顿、吞吐量下降问题
jvm·elasticsearch·性能优化
顺风尿一寸7 小时前
从 Java 到内核:探秘线程改名的完整路径
jvm
lihao lihao9 小时前
linux线程
java·开发语言·jvm
南极企鹅1 天前
JVM-编译执行过程
jvm
苏克贝塔1 天前
.NET开发之.net framework对比.net core
jvm
cfm_29141 天前
JVM垃圾收集算法与收集器深度解析
jvm·测试工具·算法·性能优化
自律懒人1 天前
AI Agent 工作流编排实战:从单 Agent 到多 Agent,手搭一套能跑通的协作系统
jvm