`
vyloy
  • 浏览: 78708 次
  • 性别: Icon_minigender_1
  • 来自: 佛山
社区版块
存档分类
最新评论

invokespecial,invokevirtual,invokeinterface,invokestatic

阅读更多
invokevirtual
指令用于调用对象的实例方法,根据对象的实际类型进行分派(虚方法分派),这也是Java 语言中最常见的方法分派方式。

invokeinterface
指令用于调用接口方法,它会在运行时搜索一个实现了这个接口方法的对象,找出适合的方法进行调用。

invokespecial
指令用于调用一些需要特殊处理的实例方法,包括实例初始化方法(§2.9)、私有方法和父类方法。

invokestatic
指令用于调用类方法(static 方法)。

而方法返回指令则是根据返回值的类型区分的,包括有 ireturn(当返回值是 boolean、
byte、char、short 和 int 类型时使用)、lreturn、freturn、dreturn 和 areturn,另
外还有一条 return 指令供声明为 void 的方法、实例初始化方法、类和接口的类初始化方法使用。


最好的沟通方式就是减少沟通。
分享到:
评论

相关推荐

    实现invokespecial指令和invokevirtual

    NULL 博文链接:https://simpleman7210.iteye.com/blog/1953969

    JVM工作原理及内存管理机制

    在执行方法时JVM提供了invokestatic、invokevirtual、invokeinterface和invokespecial四种指令来执行 (1)invokestatic:调用类的static方法 (2)invokevirtual:调用对象实例的方法 (3)invokeinterface:将属性...

    JVM调用Lambda的表达式实现方法原理详解.docx

    Java中方法的调用对应字节码有5条指令: ...invokeinterface:用于调用接口方法,会在运行时再确定一个实现该接口的对象。 invokedynamic:先在运行时动态解析出调用点限定符所引用的方法,然后再执行该方法。

    深入JVM---JVM命令---invokespecial

    NULL 博文链接:https://wensiqun.iteye.com/blog/1125503

    深入java虚拟机(inside the java virtual machine)

    The invokeinterface Instruction Invocation Instructions and Speed Examples of Method Invocation Returning from Methods On the CD-ROM The Resources Page 20 Thread Synchronization Monitors Object ...

    深入java虚拟机第二版

    19.4 指令invokeinterface 19.5 指令的调用和速度 19.6 方法调用的实例 19.7 从方法中返回 19.8 随书光盘 19.9 资源页 第20章 线程同步 20.1 监视器 20.2 对象锁 20.3 指令集中对同步的支持 20.3.1 同步...

    深入JAVA虚拟机(第2版)

    19.4 指令invokeinterface 19.5 指令的调用和速度 19.6 方法调用的实例 19.7 从方法中返回 19.8 随书光盘 19.9 资源页 第20章 线程同步 20.1 监视器 20.2 对象锁 20.3 指令集中对同步的支持 ...

    深入Java虚拟机

    19.4 指令invokeinterface 19.5 指令的调用和速度 19.6 方法调用的实例 19.7 从方法中返回 19.8 随书光盘 19.9 资源页 第20章 线程同步 20.1 监视器 20.2 对象锁 20.3 指令集中对同步的支持 ...

    深入Java虚拟机(原书第2版).pdf【附光盘内容】

    19.4 指令invokeinterface 19.5 指令的调用和速度 19.6 方法调用的实例 19.7 从方法中返回 19.8 随书光盘 19.9 资源页 第20章 线程同步 20.1 监视器 20.2 对象锁 20.3 指令集中对同步的支持 ...

    【Java】从汇编码分析java对象的创建过程

    复制操作,因为invokespecial会消耗一份引用,所以先复制一份 invokespecial 4 invokespecial #3 init是调用它的构造方法。 此时对象中的m值是8。 astore_1 将符号和对象建立关联,即t和堆中的对象。 其实很简单,...

    Head First Java 中文高清版1

    public void buildInvite() {File Edit Window Help Plead1 invokespecial #1 <Method

    Head First Java中文版1

    public void buildInvite() {File Edit Window Help Plead1 invokespecial #1 <Method

    深入java虚拟机

    完整版,有书签。 第1章 Java体系结构介绍 第2章 平台无关 第3章 安全 第4章 网络移动性 第5章 Java虚拟机 第6章 Java class文件 第7章 类型的生命周期 ...第20章 指令invokespecial 第21章 线程同步

    10Java对象的内存布局1

    // Foo 类构造器会调用其父类 Object 的构造器1 invokespecial java.lang.Object() [8]然后,子类的构造器需要调用

    深入Java虚拟机(原书第2版)及书中源代码

    第20章 指令invokespecial 第21章 线程同步 附录A 按操作码助记符排列的指令集 附录B 按功能排列的操作码助记符 附录C 按操作码字节值排列的操作码助记符 附录D Java虚拟机的一个模拟:“Slices of Pi” 原码中的小...

    深入java虚拟机中文第2版

    第20章 指令invokespecial 第21章 线程同步 附录A 按操作码助记符排列的指令集 附录B 按功能排列的操作码助记符 附录C 按操作码字节值排列的操作码助记符 附录D Java虚拟机的一个模拟:“Slices of Pi”

    bytecodelib:类似LLVM的JVM字节码库

    字节码库bytecodelib 是一个 ... 它有许多缺陷,既有明显的(异常处理程序没有建模),也有微妙的( invokespecial没有建模,除了调用超类构造函数)。 但就其功能而言,它比 ASM 更易于使用。建造ant fetch; ant jar

Global site tag (gtag.js) - Google Analytics