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

相关推荐
Dicky-_-zhang1 小时前
容器编排实战:Docker与Kubernetes对比选型与落地实践
java·jvm
XiYang-DING2 小时前
【Java SE】JVM
java·开发语言·jvm
m0_470857642 小时前
PHP怎么实现工厂模式_Factory模式编写指南【指南】
jvm·数据库·python
Dicky-_-zhang2 小时前
日志管理实战:ELK与Loki对比选型与落地实践
java·jvm
小王C语言3 小时前
【线程概念与控制】:线程封装
jvm·c++·算法
江南十四行4 小时前
并发编程(一)
java·jvm·算法
2301_783848654 小时前
mysql数据库迁移到云平台流程_使用数据传输服务DTS工具
jvm·数据库·python
Dicky-_-zhang4 小时前
自动化运维实战:监控告警与自动化运维的完整方案
java·jvm
老纪5 小时前
如何解决OUI图形界面无法调用_xhost与DISPLAY变量设置
jvm·数据库·python
qxwlcsdn5 小时前
CSS如何实现元素镜像翻转_使用transformscalex负值
jvm·数据库·python