当我没有为该类的对象(匿名)创建引用变量时,为什么不会执行类中的静态块?
例如,让我们考虑一下这个简单的类:
public class StaticDemo {
private static int x;
public static void display(){
System.out.println("Static Method: x = "+x);
}
static {
System.out.println("Static Block inside class");
}
public StaticDemo(){
System.out.println("Object created.");
}
}
另一个使用它的课程:
public class UseStaticDemo {
public static void main(String[] args) {
StaticDemo Obj = new StaticDemo();
Obj.display();
System.out.println("------------");
new StaticDemo().display();
}
}
输出:
Static Block inside class
Object created.
Static Method: x = 0
------------
Object created.
Static Method: x = 0
答案 0 :(得分:5)
static
初始化程序块仅在类loaded and initialized时运行一次。
此外,static
方法与任何实例完全无关。做
new StaticDemo().display();
毫无意义且不清楚。