如果我在另一个静态方法中调用静态方法,Java程序如何加载

时间:2017-07-11 03:47:50

标签: java

我知道静态方法会在第一次访问类时首先加载。我想知道如果一个静态方法调用另一个静态方法,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()?

1 个答案:

答案 0 :(得分:1)

嘿伙计们,我想由于评论,我明白我的问题在哪里。

静态方法将通过编译进行早期绑定(或静态绑定),但绑定过程将仅修复变量和表达式的类型,而不是检查静态方法中的已撤销方法。对于我的问题,编译器仍然会提前绑定两个方法a()和b(),但是a()在运行时不会调用b(),因为它认为a()中的b()可能是动态约束方法。

以上就是我的猜测。如果我的答案中有进一步的错误,欢迎任何更正。