jvm方法返回相关指令ireturn,areturn,return等分析

embedded/2024/10/19 21:37:22/

正文

看图:
在这里插入图片描述

做的事情如下:

1:弹出当前的方法栈帧
2:获取上一个方法
3:从当前方法的操作数栈中获取执行结果,并推送到上一个方法的操作数栈中

对应的伪代码:

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

在这里插入图片描述


http://www.ppmy.cn/embedded/93325.html

相关文章

[C++] 模板进阶:特化与编译链接全解析

文章目录 非类型模板类型形参非类型模板参数代码示例 **模板的特化**为什么要有模板的特化函数模板特化使用场景与示例函数模板特化的实现细节 类模板特化全特化示例 偏特化部分优化通过进一步限制模板参数进行特化偏特化为指针类型示例:偏特化为引用类型示例&#…

动态规划之——背包DP(完结篇)

文章目录 概要说明分组背包模板例题1思路code模板例题2思路code 有依赖的背包问题模板例题思路code 背包问题求方案数模板例题思路code 背包问题求具体方案模板例题思路code 概要说明 本文讲分组背包、有依赖的背包、 背包问题求方案数以及背包问题求具体方案 入门篇(01背包和…

Redis中BigKey的判定查找建议

判定依据 key本身的数据量过大:string类型的key它的值为5MBkey中的成员数量过多:一个zset类型的key成员数量为10000个key中的成员数据量过大:一个hash类型的key他的成员只有1000个但是这些value总大小超过100MB查看内存命令 127.0.0.1:6379> hset k1 name 123 age 123 sex…

关于LLC知识5

RLC的增益曲线不知一条 频率升高,增益会越来越低 无论在容性区还是感性区,当负载加重的时候,R阻值会变小,所以R的分压也会变小,导致增益会变低 当负载突然加重,输出电压会变低,增益曲线由红色变…

【北斗授时服务】NTP网络时间服务器 安徽京准智造

【北斗授时服务】NTP网络时间服务器 安徽京准智造 【北斗授时服务】NTP网络时间服务器 安徽京准智造 一、NTP网络时间服务器产品介绍: NTP网络时间服务器是针对计算机、自动化装置等进行校时而研发的高科技设备,该产品可从GPS卫星(北斗卫星、…

如何实现局域网远程监控员工电脑?精选5个远程监控员工电脑的方法!建议收藏!

在企业管理中,局域网远程监控员工电脑是一项重要的需求,这不仅可以加强对员工行为的监管,还能提高企业的信息安全性和运营效率。本文将为您介绍5个实现局域网远程监控员工电脑的方法,为您的企业管理提供有力支持。 一、使用专业的…

【oracle】数据库基本使用

一、oracle数据库简介 Oracle 数据库,亦称 Oracle RDBMS,或简称 Oracle,是一款由甲骨文公司推出的高效、稳定且广泛应用的关系型数据库管理系统。该数据库系统不仅在数据管理领域处于领先地位,而且由于其良好的可移植性、易用性和…

video视频自动播放兼容IOS与Android

有个需求是自动播放,但是在Android手机上正常播放,在iOS上就不播放 在移动设备上,尤其是在 iOS 设备上,视频的自动播放存在一些限制。为了使视频在 iOS 设备上自动播放,你需要确保以下几点: 确保视频是静…