一个类是否会完全加载静态成员依赖?

时间:2017-08-23 17:50:30

标签: java junit jvm

public class A extends B {
    public static final int CONST = 6;

... some logic ...
}

public class C {
    private int addNumber(int x) {
        return x + A.CONST;
    }
}

我想知道C类的jUnit测试是否只是从A类加载字段,它取决于或是否所有来自A类及其扩展(B类)的逻辑都将被完全加载。

在这种情况下JVM是如何工作的?

谢谢!

1 个答案:

答案 0 :(得分:0)

首次引用A类时,该类将完全加载。鉴于A扩展B,B类也将完全加载。 然后,B中的所有静态初始值设定项和静态字段将按B中指定的顺序执行/初始化,然后在A中,您将返回提取CONST字段的代码。