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

相关推荐
Java成神之路-9 小时前
G1 垃圾回收器 :SATB + TAMS核心机制深度解析
java·jvm
Bruce_Liuxiaowei11 小时前
轻量级 IOC 管理方案:Streamlit 驱动的恶意IP情报平台
网络·jvm·网络协议·tcp/ip·安全
wuminyu21 小时前
JUC组件逐层剥离与深度剖析
java·linux·c语言·jvm·c++·算法
songgz1 天前
zVM统一OS与DB
jvm·数据库·vm
songgz1 天前
ZenithVM:从虚拟机到分布式操作系统内核
jvm·分布式·vm
蓝胖的四次元口袋1 天前
JVM知识梳理(2)
jvm
蓝胖的四次元口袋1 天前
JVM知识梳理(3)
jvm
磁爆步兵2 天前
内存分区:程序运行的核心秘密
java·开发语言·jvm
讓丄帝愛伱2 天前
JVM线上故障快速排
jvm
落苜蓿蓝2 天前
Java 循环中对象复用导致属性覆盖?从 JVM 内存模型讲解原因
java·jvm·python