1.静态解析
有些符号引用是在类加载阶段或是第一次使用时就会转换为直接引用,这种转换叫做静态解析
静态解析的四种情形:
- 静态方法
- 父类方法
- 构造方法
- 私有方法(无法被重写)
- final修饰的方法
以上五种方法被称作非虚方法,他们是在类加载阶段就可以将符号引用转换为直接引用
2.动态链接
有些符号引用则是每次运行期间转化为直接引用,这种转换叫做动态链接.这体现为Java的多态性
3.相关字节码指令
invokeinterface—调用接口中的方法,实际上是在运行期决定的,决定到底调用实现该接口的那个对象的特定方法invokestatic—调用静态方法invokespecial—调用自己的私有方法,构造方法(<init>以及父类的方法)invokevirtual—调用虚方法,存在运行期动态查找的过程invokedynamic—动态调用方法
本文深入探讨Java中方法的静态解析与动态链接机制,解释了如何将符号引用转换为直接引用,包括非虚方法的静态解析过程及体现多态性的动态链接特性。
2万+

被折叠的 条评论
为什么被折叠?



