page contents

有关静态代码块的加载问题

Pack 发布于 2020-02-13 21:28
阅读 423
收藏 0

静态代码块不是在类加载的时候就执行了,并且只执行一次吗?

类如下:



public class ClassLoaderStudy {

static { System.out.println("外部静态代码块"); }

public static final String str = "外部静态字段";

}

执行



public static void main(String[] args) { System.out.println(ClassLoaderStudy.str); }

输出为:



外部静态字段

静态初始化代码块里的内容并没有执行,这是为什么?都调用了这个类的字段,不可能还没有加载类啊

357
Pack
Pack

常量值存储在JVM内存中的静态常量池中,在类不加载时即可访问。

请先 登录 后评论