构造代码块
特点:优先于构造方法执行,每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();
}
}
执行结果如下