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

相关推荐
布朗克16815 小时前
34 JVM深入理解
java·jvm
eggrall15 小时前
Linux线程:并发编程的双刃剑
jvm
程序员晨曦17 小时前
深入浅出JVM内存结构
jvm·面试·职场和发展
cfm_291420 小时前
JVM对象创建与内存分配机制深度解析
jvm
wuminyu20 小时前
Java锁膨胀机制之偏向锁到轻量级锁源码剖析
java·linux·c语言·jvm·c++
cfm_291420 小时前
JVM内存模型深度剖析与性能优化
jvm·性能优化
cfm_291421 小时前
JVM对象逃逸分析深度详解
java·开发语言·jvm
Full Stack Developme1 天前
JVM 与 Linux 交互的核心原理
linux·运维·jvm
cfm_29141 天前
JVM GC垃圾回收初步了解
java·开发语言·jvm
cfm_29141 天前
JVM类加载深入理解
jvm