我一直以为类加载和类初始化是同义词,并且通常在使用时按需加载/初始化,直到某种方式第一次使用初始化/加载该类。但现在我从这个 SO 回答中了解到有关保存编译时常量的 final static 字段行为的内容,我的想法是错误的。
请注意以下几点,这些都很清楚地表明类加载和初始化是两种不同的机制。
引用如下:
请注意以下几点,这些都很清楚地表明类加载和初始化是两种不同的机制。
引用如下:
另外,请注意类的加载和初始化之间的区别:仅后者的发生是由 JLS 精确定义的。类的加载可以在任何时候发生。
但Java语言中类加载和类初始化之间有什么区别呢?通常情况下,初始化应该始终先于加载,但我可能完全错了。初始化是否可以在未加载类的情况下发生?