Java的類加載機制是JVM的核心組成部分,其過程分為三個階段,并采用雙親委派模型來保證類加載的安全性和一致性。
1.類加載過程
1.加載階段(Loading)
- 核心任務:查找并加載類的二進制字節流(如.class文件)。
- 具體行為:
- 將字節碼數據從不同數據源(如文件系統、網絡等)讀取到JVM中。
- 將字節碼數據映射為JVM認可的數據結構(Class對象)。
- 可以通過自定義類加載器實現自己的加載過程。
2.鏈接階段(Linking):
- 驗證(
Verification
):確保字節碼信息符合Java虛擬機規范,防止惡意代碼或不合規代碼危害JVM運行。 - 準備(
Preparation
):為類或接口中的靜態變量分配內存并設置初始值,但不執行進一步的JVM指令。例如:static int x = 100;
在此階段x
被賦值為0
。 - 解析(
Resolution
):將常量池中的符號引用替換為直接引用。