靜態代碼塊,構造代碼塊,main()
靜態代碼塊
- 隨Class 加載而加載,為Class 作初始化;
- 在main() 之前加載;
- 只執行一次;
構造代碼塊
- 隨對象的創建而加載,為對象作初始化
public class day04 {
public static day04 d1 = new day04();
//public static day04 d2 = new day04();
public day04(){
System.out.println("構造方法");
}
{
System.out.println("構造代碼塊");
}
static {
System.out.println("靜態代碼塊");
}
public static void main(String[] args) {
System.out.println("main()");
//day04 d = new day04();
}
}
輸出順序:
1.構造代碼塊
2.構造方法
3.靜態代碼塊
4.main()
public class day04 {
public static day04 d1 = new day04();
//public static day04 d2 = new day04();
public day04(){
System.out.println("構造方法");
}
{
System.out.println("構造代碼塊");
}
static {
System.out.println("靜態代碼塊");
}
public static void main(String[] args) {
System.out.println("main()");
day04 d = new day04();
}
}
輸出順序:
1.構造代碼塊
2.構造方法
3.靜態代碼塊
4.main()
5.構造代碼塊
6.構造方法
main()
- 靜態代碼塊在main() 方法之前加載:
public class day04 {
//public static day04 d1 = new day04();
//public static day04 d2 = new day04();
public day04(){
System.out.println("構造方法");
}
{
System.out.println("構造代碼塊");
}
static {
System.out.println("靜態代碼塊");
}
public static void main(String[] args) {
System.out.println("main()");
//day04 d = new day04();
}
}
輸入結果:
1. 靜態代碼塊
2. main()

浙公網安備 33010602011771號