java中的private static final方法或者构造函数的绑定方式都是静态绑定。虚拟机如果在的每次调用方法时都要进行搜索,这样会导致相当大的开销。 因此,虚拟机预先为每个类都创建一个方法表,其中列出了所有方法的签名和实际调用的方法。这样以来,在真正调用方法时,虚拟机仅查找这个表就行了。 在运行时刻,虚拟调用方法的解析过程如下例:假如调用e.getSalary(),则解析过程为: (1) 首先,虚拟机提取e的实际类型的方法表。 (2) 虚拟机搜索定义getSalary签名的类。此时,虚拟机已经知道应该调用哪个方法。 (3) 虚拟机调用该方法。 static方法可以被子类继承,但是不能被覆盖,这是应为static方法是静态绑定的。