1.類的加載過程
Java中從類被加載到虛擬機內存中開始,到卸載出內存結束。整個生命週期包括:
加載--驗證---準備---解析---初始化---使用---卸載,一共七個階段。其中驗證-準備--解析被統稱爲”連接“,如下圖:
2.類的初始化
JVM規定有且只有四種情況對類進行“初始化”(前提,類沒有被初始化)
1.使用new關鍵字實例化對象的時候;
讀取或者設置類的一個static靜態變量(其中被final修飾除外,因爲在編譯的還是,此常量已經存在常量池中)的時候;
調用一個類的靜態方法的時候.
2.使用java.lang.reflect包的方法(反射機制)的時候.
3.當初始化一個類的時候,如果其父類還沒有被初始化,則需要先觸發其父類初始化.
4.當虛擬機啓動時,用戶指定一個要執行的主類(main方法執行的類),虛擬機會先初始化這個主類。