以前听老师提到过的一个知识点,分享给大家
[code=java]public class Test01 {
static int x = 10;
static {
x += 5;
System.out.println("执行语句块1");
}
{
x += 6;
System.out.println("执行语句块2");
}
public Test01(){
System.out.println("执行构造方法");
}
public static void main(String[] args){
System.out.println("创建Test01对象");
Test01 t = new Test01();
System.out.println("x=" + t.x);
}
static {
x /= 3;
System.out.println("执行语句块3");
}
}[/code]
输出:
执行语句块1
执行语句块3
创建Test01对象
执行语句块2
执行构造方法
x=11
静态语句块static{}中的代码在类加载时就执行了,普通语句块{}中的代码在对象初始化的时候执行,注意普通语句块会在执行构造方法之前执行 |