代码块
静态代码块
一个类被加载时会被调用一次,常用在需要做一些全局初始化的工作。
static {System.out.println("I am a static code block!"); }类被加载时会立马执行
实例代码块
每次创建实例,都会被调用 一次(被编译在构造器内,且顺序在构造器内的前面)
例:{ System.out.println("I am a instance code block!");}在new本类时执行一次
执行顺序
public class Father {
public Father(){ System.out.println("这是父类的构造器!"); }
{ System.out.println("这是父类的实例代码快!"); }
static { System.out.println("这是父类的静态代码快!"); }
}
public class Son extends Father {
public Son(){ System.out.println("这是子类的构造器!"); }
{ System.out.println("这是子类的实例代码快!");}
static { System.out.println("这是子类的静态代码快!"); }
public static void main(String[] args) {
new Son();
}
}
结果:
1. 这是父类的静态代码块!
2. 这是子类的静态代码块!(1,2是先加载)
3. 这是父类的实例代码块!
4. 这是父类的构造器!
5. 这是子类的实例代码块!
6. 这是子类的构造器!

浙公网安备 33010602011771号