构造代码块
特点:优先于构造方法执行,每new一次,就会执行一次
public class Person {public Person(){System.out.println("我是无参构造方法");}{System.out.println("我是构造代码块"); //构造代码块}
}
public class Test {public static void main(String[] args) {Person p1 = new Person();Person p2 = new Person();}
}
执行结果如下
静态代码块
特点:静态代码块优先于构造代码块和构造方法执行,而且只执行一次,所以静态代码块的应用场景一般是想让一些数据最先初始化,而且只需要初始化一次,例如初始化数据库的操作
public class Person {public Person(){System.out.println("我是无参构造方法");}{System.out.println("我是构造代码块"); //构造代码块}static{System.out.println("我是静态代码块"); //静态代码块}
}
public class Test {public static void main(String[] args) {Person p1 = new Person();Person p2 = new Person();}
}
执行结果如下