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

相关推荐
それども4 小时前
JVM MetaspaceSize 参数作用
jvm
java_upp11 小时前
JVM内存溢出和内存泄漏的区别及排查方法
jvm·内存泄漏·内存溢出
城管不管1 天前
MySQL 慢查询完整排查
java·服务器·jvm·数据库·mysql·spring·面试
mister_guo2 天前
JVM 内存管理原理及生产配置实战:从“参数能启动”到“内存可控”
java·jvm
名字还没想好☜3 天前
Go 的 strings.Builder 实战:拼接性能、Grow 预分配与何时该用 bytes.Buffer
java·jvm·后端·golang·go
wear工程师3 天前
Java 类初始化到底何时触发?别把加载、连接和 static 执行混在一起
java·jvm
程序员雷欧3 天前
线上频繁触发各种 GC 的原因排查与处理指南
java·jvm·算法
wuminyu4 天前
JVM利用io_uring优化堆外内存性能原理剖析
java·linux·c语言·jvm·c++
147API5 天前
Python批量生成蒸馏数据,并发、重试、幂等和断点续跑
开发语言·jvm·python
wuminyu5 天前
JDK21解决虚拟线程IO阻塞原理剖析
java·linux·c语言·jvm·c++