代码块
代码演示
public class Teacher {
public Teacher(){ //
System.out.println("我是Teacher构造函数"); //构造函数
} //
{ //
System.out.println("我是Teacher构造代码块"); //构造代码块
} //
static{ //
System.out.println("我是Teacher静态代码块"); //静态代码块
} //
public static void main(String[] args) {
{ //
System.out.println("我是Teacher局部代码块");//局部代码块
} //
Teacher t = new Teacher();
System.out.println("----------------");
Teacher tt = new Teacher();
}
结果
我是Teacher静态代码块
我是Teacher局部代码块
我是Teacher构造代码块
我是Teacher构造函数
----------------
我是Teacher构造代码块
我是Teacher构造函数
注:静态代码块都是先执行的,并且只执行一次,因为它是随着类的加载而加载的,执行程序时只加载一次类,因此它只执行一次;局部代码块也执行一次,因为它用完会自动释放内存,因此不会再执行第二次,如果它出现在new的对象前它会比构造代码块先执行,反之则执行在构造方法后;构造代码块比构造方法先执行