java中靜態程式碼塊、構造程式碼塊、構造方法、main函式的執行順序?
阿新 • • 發佈:2018-12-31
- 靜態程式碼塊:在類被載入的時候就運行了,且只執行一次。static{}
- 構造程式碼塊:在建立物件時被呼叫,每次建立物件都會呼叫一次。比靜態程式碼塊少了static。{}
- 構造方法:用於建立物件時定義初始化的狀態。建構函式不能直接呼叫,必須通過new運算子在建立物件時才會自動呼叫,一般方法是在程式執行到它的時候被呼叫。
- 先不建立物件,如下:
-
public class Test { // 靜態程式碼塊 static { System.out.println("靜態程式碼塊"); } // 構造程式碼塊 { System.out.println(
執行結果:
可見:先執行靜態程式碼塊,後執行main方法。未建立物件,不執行構造程式碼塊和構造方法。
- 下面例項化物件:
-
public static void main(String[] args) { System.out.println(
結果:
可以看得出,建立物件後構造程式碼塊先於建構函式執行
- 總結:在建立物件前,可以執行靜態程式碼塊和main(),靜態程式碼塊>main(),及時這兩者調換程式碼順序也一樣。
- 在建立物件後,可以執行構造程式碼塊和建構函式,構造程式碼塊>建構函式,及時這兩者調換程式碼順序也一樣。
- 在main()中,程式碼按照順序執行。