1. 程式人生 > >java中靜態程式碼塊,構造程式碼塊,區域性程式碼塊等的執行順序以及特點

java中靜態程式碼塊,構造程式碼塊,區域性程式碼塊等的執行順序以及特點

靜態程式碼塊:在類中方法外出現,並加上static修飾;用於給類進行初始化,在載入的時候就執行,並且只執行一次。,如果一個類中用main方法,靜態程式碼塊要先於main方法執行;
靜態程式碼款示例:

    static {
        System.out.print("我是構造程式碼塊!");    
    }

構造程式碼塊:在類中方法外出現,多個構造方法方法中相同的程式碼存放到一起,每次呼叫構造都執行,並且在構造方法前執行
區域性程式碼塊:在方法中出現;限定變數生命週期,及早釋放,提高記憶體利用率
那麼我們可以總結一下各種程式碼塊的執行順序:
    ①靜態程式碼塊,
    ②如果有main方法,執行main方法,
    ③構造程式碼塊,每次呼叫構造方法都會呼叫,
    ④構造方法
    看看下面的程式碼的結果是什麼呢?
class Student {
static {
System.out.println("Student 靜態程式碼塊");
}

{
System.out.println("Student 構造程式碼塊");
}

public Student() {
System.out.println("Student 構造方法");
}
}

class Demo2_Student {
static {
System.out.println("Demo2_Student靜態程式碼塊");
}

public static void main(String[] args) {
System.out.println("我是main方法");

Student s1 = new Student();
Student s2 = new Student();
}
}

Demo2_Student靜態程式碼塊
我是main方法
Student 靜態程式碼塊
Student 構造程式碼塊
Student 構造方法
Student 構造程式碼塊
Student 構造方法