說明
當程式主動使用某個類別時,如果該類別尚未載入到記憶體中,則系統會透過以下三個步驟對該類別進行初始化。
類別載入步驟
1、載入:將class檔案字節碼內容載入到記憶體中,並將這些靜態資料轉換成方法區的執行時間數據結構,然後產生一個代表這個類別的java.lang.Class 對象,作為方法區中類別資料的存取入口。
2、連結:將Java類別的二進位程式碼合併到JVM的運作狀態之中的過程。
3、執行類別建構器
實例
public class ClassLoadingTest{ public static void main (String [] args){ System.out.println(test.m); } } class test{ static { m = 300; } static int m = 100; } //第一步:加载 //第二步:链接结束后m=0 //第三步:初始化结束后,m的值由<clinit>()方法执行决定 /* 这个test构造器<clinit>()方法由类变量的赋值和静态代码块中的语句按照顺序合并产生,类似于 <clinit>(){ m = 300; m = 100; } */
以上是java類別載入的過程實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!