一个类可以使用不包含在任何方法体中的静态代码块,当类被载入时,静态代码块被执行,且只执行一次,静态代码块经常用来进行类属性的初始化。
例:
public class java_ex11 {
static{
System.out.println("3~~");
}
public static void main(String[] args){
System.out.println("4~~ ");
new Person11();
new Person11();
new Person11();
}
}
class Person11{
public Person11(){
System.out.println("1~~");
}
static {
System.out.println("2~~");
}
}
结果:
3~~
4~~
2~~
1~~
1~~
1~~
解析:
从程序运行结果来看java_ex11 类中的静态代码块首先被调用,然后Person11类中的静态代码块只执行了一次,
而且静态代码块优先于静态方法,所以静态代码块可以为静态属性初始化。