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

相关推荐
WizLC13 小时前
【JAVA】JVM类加载器知识笔记
java·jvm·笔记
CodeAmaz14 小时前
Java 垃圾回收(GC)算法详解
java·jvm·算法·垃圾回收算法
漫漫求16 小时前
Java内存模型【JMM】、JVM内存模型
java·开发语言·jvm
dddaidai12317 小时前
深入JVM(三):JVM执行引擎
java·jvm
小羊学伽瓦19 小时前
ThreadLocal
java·jvm·算法
脸大是真的好~20 小时前
JVM面试题相关-中级
jvm
利刃大大21 小时前
【JavaSE】十九、JVM运行流程 && 类加载Class Loading
java·开发语言·jvm
福尔摩斯张1 天前
Linux Kernel 设计思路与原理详解:从“一切皆文件“到模块化架构(超详细)
java·linux·运维·开发语言·jvm·c++·架构
deng-c-f1 天前
Linux C/C++ 学习日记(51):内存池
jvm·学习
没有bug.的程序员1 天前
SOA、微服务、分布式系统的区别与联系
java·jvm·微服务·架构·wpf·日志·gc