![]() |
1
2
通常,如果 the official specification 而在互联网上的一些文章中,你可以有把握地认为规范是最后一句话,而这篇文章是错误的。这将在99.99%的情况下为您服务。 当谈到Java虚拟机时,尤其如此,在这里,文章将问题的步骤(加载、链接和初始化)混为一谈,并且经常将正式步骤和实现细节混为一谈。 你链接的那篇文章在几个方面是否有错:
|
![]() |
2
0
我的理解是,内存分配是在准备过程中完成的,而初始化程序的执行是在初始化过程中完成的。这与任何一个来源都不矛盾。 |
![]() |
3
0
准确地说,
对于静态变量,如果不初始化变量,则会在对象准备之前存储默认值(JVM负责此操作),但对于最终静态变量,则需要在创建对象之前初始化变量,即当我们尝试创建调用构造函数的新对象时,在对象返回到引用变量之前,值需要初始化,否则为编译时错误。 回答您的问题:
|