一个类可以使用不包含在任何方法体中的静态代码块。当类被载入时,静态代码块被执行,且只执行一次。导致类被载入的操作包括:使用任何类的静态属性或方法,新建类的对象(声明类的对象不会导致静态代码块被执行)。静态代码块经常用来进行类属性的初始化。请看下面的测试:
class Person { public Person() { System.out.println("1.public Person()"); } static { System.out.println("2.Person 类的静态代码块被调用!"); } } public class TestStaticDemo5 { static { System.out.println("3.TestStaticDemo5 类的静态代码块被调用!"); } public static void main(String args[]) { System.out.println("4. 程序开始执行!"); new Person(); new Person(); } }
将以上代码保存为文件TestStaticDemo5.java。“javac TestStaticDemo5.java” 编译后执行 “java TestStaticDemo5”,打印如下:
3.TestStaticDemo5 类的静态代码块被调用!
4. 程序开始执行!
2.Person 类的静态代码块被调用!
1.public Person()
1.public Person()