Java静态方法变量在编译期间解析,在运行时加载?

1 java time static compilation

我正在阅读Java中的静态方法和变量,我发现了以下两篇关于堆栈溢出的文章.

Java中的静态方法是否始终在编译时解决? 这就是说,静态方法在编译时得到解决.

什么时候在java,运行时或编译时加载静态变量?时间或编译时

这就是说,静态方法在编译时加载.

编译器解析它们时是否应该加载静态变量/方法(比如在编译时)?令人困惑!有人可以澄清一下吗?

Ste*_*ven 6

在我看来,你对"解决"和"加载"这两个术语的含义感到困惑.

解析方法/变量意味着确切地确定调用哪个方法/变量.例如,方法在运行时完成,这导致子类覆盖超类的方法(多态)的能力.但是静态方法不能被覆盖并在编译时解析.

加载变量意味着实际将值存入​​内存.当然,这只能在运行时发生.具体来说,在加载类本身时会加载静态变量.