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

相关推荐
张健11564096481 天前
临界区和同一线程上锁
java·开发语言·jvm
无限进步_1 天前
C++ 多态机制完全解析:从虚函数重写到动态绑定原理
java·c语言·jvm·数据结构·c++·windows·后端
Sayuanni%31 天前
java初阶——JVM
jvm
逻辑驱动的ken2 天前
Java高频面试考点场景题22
java·开发语言·jvm·面试·职场和发展·求职招聘·春招
wuminyu2 天前
专家视角看Java字节码加载与存储指令机制
java·linux·c语言·jvm·c++
.小小陈.2 天前
Linux 线程概念与控制:从底层原理到实战应用
linux·运维·jvm
light blue bird2 天前
工序路径工站物料 BOM 协同组件
jvm
zhaoyong2222 天前
MySQL 存储过程中字符集与排序规则不匹配导致查询性能下降的解决方案
jvm·数据库·python
sinat_383437362 天前
golang如何从Python转型Go开发_golang从Python转型Go开发攻略
jvm·数据库·python
FQNmxDG4S2 天前
JVM内存模型详解:堆、栈、方法区与垃圾回收
java·jvm·算法