何时初始化静态变量?

何时初始化静态变量?

我想知道什么时候静态变量初始化为默认值。是否正确加载类时,会创建(分配)静态变量,然后执行声明中的静态初始化和初始化?在什么时候给出默认值?这导致了前向参考的问题。

另外请您解释一下这个问题,为什么静态字段没有及时初始化?特别是Kevin Brock在同一网站上给出的答案。我无法理解第三点。


炎炎设计
浏览 799回答 3
3回答

手掌心

看到:JLS 8.7,静态初始化器JLS 12.2,加载类和接口JLS 12.4,类和接口的初始化最后一个特别提供了详细的初始化步骤,这些步骤在静态变量初始化时说明,并按什么顺序(需要注意的final是首先初始化编译时常量的类变量和接口字段。)我不确定你对第3点的具体问题(假设你的意思是嵌套的?)是。详细的序列表明这将是一个递归初始化请求,因此它将继续初始化。

暮色呼如

初始化的顺序是:静态初始化块实例初始化块构造函数JVM 规范文档中解释了该过程的详细信息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java