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

相关推荐
unclecss8 小时前
把 Spring Boot 的启动时间从 3 秒打到 30 毫秒,内存砍掉 80%,让 Java 在 Serverless 时代横着走
java·jvm·spring boot·serverless·graalvm
q***2519 小时前
java进阶1——JVM
java·开发语言·jvm
zlpzlpzyd9 小时前
jvm 偏向锁禁用以及移除
jvm
while(1){yan}9 小时前
线程的状态
java·开发语言·jvm
20岁30年经验的码农9 小时前
Java JVM 技术详解
java·jvm·压力测试
1***81539 小时前
C在游戏中的场景管理
java·jvm·游戏
上78将9 小时前
jvm的基本结构
jvm
Tan_Ying_Y10 小时前
JVM内存结构———他的底层完整结构
jvm
张人玉10 小时前
SQLite语法知识和使用实例
jvm·oracle·sqlite
艾斯比的日常10 小时前
JVM 内存结构:全面解析与面试重点
jvm·面试·职场和发展