JVM 指令04__方法调用指令和返回指令
一、方法调用指令
在 Jvm 指令当中涉及到方法调用的指令有 5 个,分别是 invokeinterface、invokestatic、invokespecial、invokedynamic、invokevirtual
invokeinterface: 用于调用接口方法,它会在运行时搜索该接口的实现类,在具体的实现类中找出合适的方法进行调用
invokestatic: 用于调用类中的静态方法(静态绑定)
invokespecial: 用于调用一些需要进行特殊处理的方法,具体有实例的构造方法、私有方法、父类的方法,无论如何搜索,最终找到的调用方法都是唯一确定的(静态派发)
invokevirtual: 用于调用对象的实例方法,根据对象的实际类型进行动态派发,支持多态(动态派发)
invokedynamic: 用于调用动态绑定的方法
二、方法返回指令
方法返回指令是将当前方法栈帧(活动栈帧)中操作数栈栈顶的元素弹出,并将这个操作数压入方法调用者的操作数栈的栈顶位置
执行返回指令之后即当前方法已结束,活动栈帧弹出虚拟机栈,此时方法调用者对应的方法成为新的活动栈帧
数据类型 | 返回指令 |
void | return |
boolean、byte、short、char、int | ireturn |
float | freturn |
double | dreturn |
long | lreturn |
reference | areturn |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2021-12-02 HTTP 协议中 URI 和 URL 有什么区别
2021-12-02 Java 获取指定范围内的日期时间
2020-12-02 Linux 安装 Nginx
2020-12-02 Nginx 入门
2020-12-02 Linux rz / sz 命令