这里我们学习的是实际方法的地址入口与符号引用是怎么转换的。
首先我们来看一个源码和他的字节码。
从代码块的字节码可以看出,invoke指令后面跟的是字符引用,所以这里需要把字符引用转为方法块的入口地址。这里的转换是有一定规则。下面让我们来看看这些规则。
1.实际方法的方法名称、参数类型、返回类型是在编译期决定。
可以看到invoke后面的字符引用是。(分派)
2.静态方法、初始化函数、类的私有函数、父类的函数是可以直接在类加载过程中的解析阶段就可以直接转换为直接引用。
3…具体实际方法的类型是在运行期决定的,是根据变量值的实际类型。(分派)