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

相关推荐
Fanfanaas10 分钟前
C++ 继承
java·开发语言·jvm·c++·学习·算法
周杰伦fans2 小时前
C# 异常继承深度解析:从设计原则到 sealed 关键字的奥秘
java·jvm·c#
小L写Java3 小时前
第三章:Java 内存模型 (JMM) 与运行时数据区
java·jvm
在繁华处6 小时前
Java从零到熟练(十):JVM基础与性能优化
java·jvm·性能优化
go不是csgo1 天前
GORM 上手:一个 main.go 跑通 Go 数据库增删改查
jvm·数据库·golang
KobeSacre1 天前
JVM G1 垃圾回收器
java·开发语言·jvm
右耳朵猫AI1 天前
Java & JVM技术周刊 2026年第20周
java·开发语言·jvm
小张小张爱学习1 天前
JVM高频面试题
java·jvm
Rick19931 天前
jstack和jstat有什么区别?
jvm·cpu飙高
橙淮2 天前
并发编程(六)
java·jvm