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

相关推荐
算法与编程之美17 小时前
理解Java finalize函数
java·开发语言·jvm·算法
编码追梦人20 小时前
仓颉语言:全栈开发新利器,从服务端到鸿蒙的深度解析与实践
jvm·华为·harmonyos
彩妙不是菜喵20 小时前
C++ 中 nullptr 的使用与实践:从陷阱到最佳实践
开发语言·jvm·c++
light_in_hand21 小时前
内存区域划分——垃圾回收
java·jvm·算法
DKPT1 天前
如何设置JVM参数避开直接内存溢出的坑?
java·开发语言·jvm·笔记·学习
Violet_YSWY1 天前
JVM如何下载
jvm
沐浴露z1 天前
详解JDK21新特性【虚拟线程】
java·开发语言·jvm
堕落年代1 天前
JVM架构与执行流程详解
jvm
一抓掉一大把1 天前
秒杀-StackExchangeRedisHelper连接单例
java·开发语言·jvm