我知道静态方法会在第一次访问类时首先加载。我想知道如果一个静态方法调用另一个静态方法,java如何知道首先加载哪个静态方法。例如:
class Test{
public static void a(){
b();
System.out.println("Hello");
}
public static void b(){
System.out.println("World");
}
public static void main(String[] args){
a();
}
}
在上面的代码中,只有在正确绑定b()时才能调用a()。 java如何知道它应该首先绑定b()?
答案 0 :(得分:1)
嘿伙计们,我想由于评论,我明白我的问题在哪里。
静态方法将通过编译进行早期绑定(或静态绑定),但绑定过程将仅修复变量和表达式的类型,而不是检查静态方法中的已撤销方法。对于我的问题,编译器仍然会提前绑定两个方法a()和b(),但是a()在运行时不会调用b(),因为它认为a()中的b()可能是动态约束方法。
以上就是我的猜测。如果我的答案中有进一步的错误,欢迎任何更正。