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

相关推荐
听风吟丶2 小时前
Java NIO 深度解析:从核心组件到高并发实战
java·开发语言·jvm
a努力。2 小时前
小红书Java面试被问:ThreadLocal 内存泄漏问题及解决方案
java·jvm·后端·算法·面试·架构
4***14903 小时前
高并发时代的“确定性”挑战——为何稳定性正在成为 JVM 的下一场核心竞争?
java·开发语言·jvm
代码代码快快显灵3 小时前
Android跨应用数据共享:ContentProvider详解
jvm·数据库·oracle
大大大大物~3 小时前
JVM 之 垃圾回收算法及其内部实现原理【垃圾回收的核心问题有哪些?分别怎么解决的?可达性分析解决了什么问题?回收算法有哪些?内部怎么实现的?】
jvm·算法
冰冰菜的扣jio4 小时前
JVM中的垃圾回收详解
java·jvm
未若君雅裁4 小时前
JVM核心原理总结
java·jvm
xiaohua10094 小时前
JVM性能分析
java·jvm
程序员zgh15 小时前
C++ 互斥锁、读写锁、原子操作、条件变量
c语言·开发语言·jvm·c++
青蛙大侠公主16 小时前
java8新特性
jvm