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

相关推荐
2301_803934612 小时前
MySQL 字段类型选择规范指南
jvm·数据库·python
阿坤带你走近大数据3 小时前
Java中的JVM、类加载记住、多线程、性能优化的概念
java·jvm·性能优化
雪度娃娃6 小时前
转向现代C++——优先选用限定作用域的枚举型别,而非不限作用域的枚举型别
java·jvm·c++
欢璃7 小时前
笔试强训练习
java·开发语言·jvm·数据结构·算法·贪心算法·动态规划
Dicky-_-zhang7 小时前
Go语言内存管理与GC机制深度解析
java·jvm
老纪8 小时前
c++怎么利用std--variant处理多种二进制子协议包的自动分支解析【进阶】
jvm·数据库·python
JAVA面经实录9178 小时前
JVM高频面试总结(背诵完整版)
java·开发语言·jvm
沪漂阿龙8 小时前
Java JVM 面试题详解:JVM运行原理、内存模型、堆栈方法区、GC垃圾回收、JIT编译、类加载机制与线上调优全攻略
java·开发语言·jvm
Dicky-_-zhang9 小时前
云原生存储与数据库选型实战:从传统数据库到云原生数据库的演进
java·jvm
Dicky-_-zhang10 小时前
容器网络CNI实战:从零搭建网络插件
java·jvm