方法调用

方法调用并不等同于方法中的代码被执行,方法调用阶段唯一的任务就是确定被

调用方法的版本(即调用哪个方法),暂时还未涉及方法内部的具体运行过程。

Class文件的编译过程中不包含传统程序语言编译的连接步骤,一切方法调用

Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局

中的入口地址(也就是直接引用)。

这个特性给Java带来了更强大的动态扩展能力,但也使得Java方法调用过程

变得相对复杂,某些调用需要在类加载期间,甚至到运行期间才能确定目标

方法的直接引用。

方法调用的方式

  • 解析调用(Resolution
  • 分派调用(Dispatch