最终变量和静态初始化程序

时间:2018-03-28 17:43:37

标签: java

我正在阅读静态初始化程序并遇到了这个问题

Why reference to a static final field will not trigger class loading?

我从这个问题做了一点修改:

public class Constants {
    public static final String c1;

    static {
        c1 = "C1";
        System.out.println("Constants Class Loaded!");
    }
}

现在正在打印:

Constants Class Loaded!
C1

似乎当我在静态初始化程序块中为静态最终变量赋值时,运行静态初始化程序。但它不应该运行,因为JLS说引用常量静态变量不应该加载类。任何人都可以解释一下吗?

0 个答案:

没有答案