分类: Java
2012-03-15 09:18:40
1) 类中Static{}代码段会在该类第一次访问里被调用,并且仅被调用一次
2) 由于类中构造方法会默认地或显示的调用父类的构造方法,这样类在实例化时(即调用构造器方法),会优先调用构造器方法。
如下程序:
class Firework{
static {
System.out.println("Hello" );
}
public Firework () {
System.out.println("Firework 0" );
}
}
class Fountain extends Firework {
static {
System.out.println("World" );
}
public Fountain() {
// TODO Auto-generated constructor stub
System.out.println("Fountain 0" );
}
}
现有一段代码如下:
Firework f = new Fountain();
运行输出为
Hello
World
Firework 0
Fountain 0
由输出可知Java对类中static块执行策略是:优先深度遍历所有类的static{}块,其次再遍历类的构造器