【发布时间】:2016-10-10 11:35:39
【问题描述】:
我对它在 Java 中的静态块如何工作表示怀疑。据我了解,每次JVM加载类时都会执行静态块内的代码。我不明白的是何时加载一个类。
例如,假设我在 MyObject 类中有静态块,然后在另一个类中我有这个代码:
MyObject o1= new MyObject();
MyObject o2= new MyObject();
这种情况下静态块执行了多少次?
【问题讨论】:
-
问题是什么?何时加载类或静态块执行多少次?
-
@seal - 我问了两个问题
-
一个类只加载一次,第一次需要加载。 JVM 何时执行此操作取决于 JVM 实现。
-
@PeterLawrey - .... 除非你有类加载器树。
-
嗯。这取决于你如何“闭嘴”。另一种说法是该类被多次加载,每次加载时都会得到不同的类型(以及不同的
Class对象)。