構造代碼塊
特點:優先于構造方法執行,每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();}
}
執行結果如下