我一直认为类加载和类初始化是同义词,并且通常在第一次以某种方式使用被初始化/加载的类时按需发生。但是现在我从这个关于 SO 的答案中知道了关于持有编译时间常数的最终静态文件的行为,我的信念是错误的。
请注意以下内容,这清楚地表明类加载 和初始化是两种不同的机制。
附带说明一下,请注意类加载和类初始化之间的区别:只有后者的出现是由 JLS 精确指定的。类加载可以随时发生。
但是有人可以解释一下Java语言中类加载和类初始化之间的区别。通常直觉说初始化应该总是在加载之前,但我完全错了。可以在没有加载类的情况下进行初始化吗?