JAVA静态块执行了多少次?
我怀疑它在Java中是如何工作的静态块。据我所知,每次JVM加载类时,都会执行静态块中的代码。我不明白的是什么时候加载了一个类 例如,假设我在类JAVA静态块执行了多少次?,java,static,jvm,block,Java,Static,Jvm,Block,我怀疑它在Java中是如何工作的静态块。据我所知,每次JVM加载类时,都会执行静态块中的代码。我不明白的是什么时候加载了一个类 例如,假设我在类MyObject中有一个静态块,然后在另一个类中有以下代码: MyObject o1= new MyObject(); MyObject o2= new MyObject(); 在这种情况下,静态块被执行了多少次?当JVM第一次加载类时,静态块中的代码被执行 如果再次加载,则不会执行静态块。您可以使用class.forName(“class”)方法显式
MyObject
中有一个静态块,然后在另一个类中有以下代码:
MyObject o1= new MyObject();
MyObject o2= new MyObject();
在这种情况下,静态块被执行了多少次?当JVM第一次加载类时,静态块中的代码被执行 如果再次加载,则不会执行静态块。您可以使用class.forName(“class”)方法显式加载该类以执行静态块 就你而言
MyObject o1= new MyObject();
MyObject o2= new MyObject();
首次创建对象时,将执行静态块。再次创建另一个对象,它将不会执行。他们共享同一份数据。问题是什么?什么时候加载类或者静态块执行了多少次?@seal-我问了两个问题。类只加载一次,第一次需要加载。JVM何时执行此操作取决于JVM实现。@PeterLawrey-。。。。除非您有类装入器树。Hmmm。这取决于你如何“张嘴”。另一种说法是,类被加载多次,每次加载都会得到不同的类型(以及不同的
class
对象)。“每次JVM第一次加载该类”-这是多少次?:-)只有第一次。什么是“每次JVM第一次加载类”?“第一次”加载类的频率是多少?“如果你再次加载”是什么意思;你认为,你多久可以加载一个类?这意味着如果你想重新加载你的类。不。现在还不清楚。“第一次”不止一次发生的事情是一个逻辑矛盾。逻辑上的矛盾永远不清楚。