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

相关推荐
余瑜鱼鱼鱼5 小时前
线程和进程的区别和联系
java·开发语言·jvm
CC.GG12 小时前
【C++】异常
java·jvm·c++
尽兴-13 小时前
JVM Class文件结构与字节码深度解析
jvm·常量池·字节码指令·字节码文件·.class
程序猿202314 小时前
JVM与JAVA
java·jvm·python
Gary董14 小时前
内存泄漏和溢出
java·jvm
jiayong2315 小时前
JVM垃圾回收机制面试题
java·开发语言·jvm
尽兴-15 小时前
JVM垃圾收集器与三色标记算法详解
java·jvm·算法·cms·gc·g1·三色标记算法
jiayong2316 小时前
JVM内存模型与管理面试题详解
jvm
jiayong2316 小时前
JVM垃圾回收算法与收集器面试题详解
jvm
cyforkk17 小时前
01、Java基础入门:JDK、JRE、JVM关系详解及开发流程
java·开发语言·jvm