JAVA执行了多少次静态块?

时间:2016-10-10 11:35:39

标签: java static jvm block

我怀疑它在Java中如何工作静态块。据我所知,每次由JVM加载类时,都会执行静态块内的代码。我不明白的是什么时候加载了一个类。

例如,假设我在类MyObject中有静态块,然后从另一个类我有这段代码:

MyObject o1= new MyObject();
MyObject o2= new MyObject();

在这种情况下执行静态块的次数是多少次?

1 个答案:

答案 0 :(得分:0)

第一次由JVM加载类时执行静态块内的代码。

如果再次加载,则静态块将不会执行。您可以使用Class.forName(" class")方法显式加载该类来执行静态块。

在你的情况下,

MyObject o1= new MyObject();
MyObject o2= new MyObject();

首次创建对象时,将执行静态块。再次创建另一个对象,它将不会执行。他们共享相同的数据副本。