静态代码块,在建立实例的时候就会执行. 首先开来看一个实例:java
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"); } }
这里没有打印静态代码块,由于类没有被实例化code
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
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(); } }