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中。就比如下边的例子

相关推荐
我是一只小青蛙88815 小时前
AVL树:平衡二叉搜索树原理与C++实战
java·jvm·面试
阿崽meitoufa17 小时前
JVM虚拟机:垃圾收集器和判断对象是否存活的算法
java·jvm·算法
杏花春雨江南1 天前
JavaWeb企业级项目实战:从SSH到SSM演进 + MQ/Redis/ES高可用架构落地全复盘(实战干货+避坑指南)
java·jvm·spring
期待のcode1 天前
性能监控工具
java·开发语言·jvm
小白不会Coding1 天前
一文详解JVM中类的生命周期
java·jvm·类的生命周期
TracyCoder1231 天前
JVM 内存模型全景解析
jvm
洛豳枭薰1 天前
jvm运行时数据区& Java 内存模型
java·开发语言·jvm
chilavert3181 天前
技术演进中的开发沉思-319 JVM:附录指令集
jvm
wulalalalalalalal1 天前
JVM(一):运行时数据区
jvm
期待のcode1 天前
JVM 中对象进入老年代的时机
java·开发语言·jvm