静态代码块,在创建实例的时候就会执行. 首先开来看一个实例:
1.误区
class MyClass1 {
static {//静态块
System.out.println("static block ");
}
}
public class Main {
Class[] classArray = {
MyClass1.class//这样引用该类,必然需要将该类加载到虚拟机中
};
public static void main(String[] args){
System.out.println("hello word");
}
}
这里没有打印静态代码块,因为类没有被实例化
2.实例化之后
class MyClass1 {
static {//静态块
System.out.println("static block ");
}
}
public class Main {
Class[] classArray = {
MyClass1.class//这样引用该类,必然需要将该类加载到虚拟机中
};
public static void main(String[] args){
System.out.println("hello word");
MyClass1 class1=new MyClass1();
}
}
3.继续测试
class MyClass1 {
static {//静态块
System.out.println("static block ");
}
}
public class Main {
static {//静态块
System.out.println("static block2 ");
}
Class[] classArray = {
MyClass1.class//这样引用该类,必然需要将该类加载到虚拟机中
};
public static void main(String[] args){
System.out.println("hello word");
MyClass1 class1=new MyClass1();
}
}