Java原始碼各個程式碼塊的載入順序
阿新 • • 發佈:2018-11-01
類第一次載入時回載入靜態成員、靜態程式碼塊、成員變數、構造程式碼塊、構造方法,下面通過輸出顯示在類載入時以上成員的載入順序。
<span style="font-size:14px;">public class Test1 { public static void main(String[] args) { // 第一次載入class檔案要執行的程式塊 BlockSequence bs = new BlockSequence(); System.out.println("----------------------------------------"); // 第二次載入就不要載入靜態程式碼塊了 new BlockSequence(); } } /* * 作為能夠顯示屬性已建立的臨時類。 */ class Demo { public Demo(String str) { System.out.println(str + ": Demo物件"); } } /** * 各個程式塊的名稱就是索要輸出的字串。不在進行一一標記。 */ class BlockSequence { private Demo d1 = new Demo("成員屬性"); public static Demo d2 = new Demo("靜態變數"); public BlockSequence() { } { System.out.println("我是成員程式碼塊"); } static { System.out.println("我是靜態程式碼塊"); } }</span>
執行結果:
靜態變數: Demo物件
我是靜態程式碼塊
成員屬性: Demo物件
我是成員程式碼塊
----------------------------------------
成員屬性: Demo物件
我是成員程式碼塊
分析:
載入時順序為:
- 靜態變數
- 靜態程式碼塊
- 成員屬性
- 成員程式碼塊
- 構造程式碼塊