静态代码块不是在类加载的时候就执行了,并且只执行一次吗?
类如下:
public class ClassLoaderStudy {
static { System.out.println("外部静态代码块"); }
public static final String str = "外部静态字段";
}
执行
public static void main(String[] args) {
System.out.println(ClassLoaderStudy.str);
}
输出为:
外部静态字段
静态初始化代码块里的内容并没有执行,这是为什么?都调用了这个类的字段,不可能还没有加载类啊
最佳答案 2020-03-24 17:15
常量值存储在JVM内存中的静态常量池中,在类不加载时即可访问。