美文网首页
方法调用指令

方法调用指令

作者: Shaw_Young | 来源:发表于2021-09-02 15:06 被阅读0次

方法调用指令:invokevirtual、invokeinterface、invokespecial、invokestatic、invokedynamic

以下5条指令用于方法调用:

  • invokevirtual指令用于调用对象的实例方法,根据对象的实际类型进行分派(虚方法分派),支持多态。这也是Java语言中最常见的方法分派方式
  • invokeinterface指令用于调用接口方法,它会在运行时搜索由特定对象所实现的这个接口方法,并找出适合的方法进行调用。
  • invokespecial指令用于调用一些需要特殊处理的实例方法,包括实例初始化方法(构造器)、私有方法和父类方法。这些方法都是静态类型绑定的,不会在调用时进行动态派发。
  • invokestatic指令用于调用命名类中的类方法(static方法)。这是静态绑定的。
  • invokedynamic:调用动态绑定的方法,这个是jdk 1.7后新加入的指令。用于在运行时动态解析出调用点限定符合所引用的方法,并执行该方法。前面4条调用指令的分派逻辑都固化在 java 虚拟机内部,而invokedynamic指令的分派逻辑是由用户所设定的引导方法决定的。

梦想很模糊,去追,它会渐变清晰。青春励志,奋斗下去别放弃。

相关文章

  • JVM - 方法调用和返回指令

    方法调用指令 以下四条指令用于方法调用: invokevirtual 指令用于调用对象的实例方法,根据对象的实际类...

  • 方法调用指令

    方法调用指令:invokevirtual、invokeinterface、invokespecial、invoke...

  • this 的理解

    this 定义 this: 指的是调用 当前 方法(函数)的那个对象谁调用该方法this就指令

  • 04 JVM是如何执行方法调用的(下)

    虚方法调用 Java 里所有非私有实例方法调用都会被编译成 invokevirtual 指令,而接口方法调用会被编...

  • 聊一聊JVM中方法的调用(二)

    虚方法的调用 java里所有的非私有实例方法调用都会被编译成invokevirtual指令,接口方法调用都会被编译...

  • Java各个方法调用浅析

    JVM方法调用的指令有以下五种: invokestatic 调用类方法(静态绑定,速度快) invokevirtu...

  • 解析字节码指令

    解析invokeinterface指令 与invokevirtual指令类似,当没有对目标方法进行解析时,需要调用...

  • 用Java实现JVM第七章《方法调用和返回》

    案例介绍 本章节主要用java实现;方法调用指令、返回指令、解析方法符号引用、参数传递等。实现新的指令后我们的虚拟...

  • JIT编译优化之方法内联

    如何实现方法调用 要如何实现方法调用呢?最直接的方法就是可以把调用的函数指令,直接插入在调用函数的地方,然后在编译...

  • self和super区别

    self:调用自己方法,它是类super:调用父类方法,它是预编译指令【self class】和【super cl...

网友评论

      本文标题:方法调用指令

      本文链接:https://www.haomeiwen.com/subject/scbxwltx.html