類裝載子系統圖例:
類載入過程說明:
多個java檔案經過編譯打包生成可執行jar包,最終由java命令執行某個主類的main函式啟動程式,這裡首先需要透過
類載入器
把主類載入到JVM。
載入
>>
驗證
>>
準備
>>
解析
>>
初始化
>>
使用
>> 解除安裝
載入:
在硬碟上查詢並透過IO讀入位元組碼檔案,使用到類時才會載入,例如呼叫類的main()方法,new物件等等
驗證:
校驗位元組碼檔案的正確性準備:給類的靜態變數分配記憶體,並賦予預設值
解析:
將符號引用替換為直接引用,該階段會把一些靜態方法(符號引用,比如main()方法)替換為指向資料所存記憶體的指標或控制代碼等(直接引用),這是所謂的靜態鏈 接過程(類載入期間完成),動態連結是在程式執行期間完成的將符號引用替換為直接引用
初始化:
對類的靜態變數初始化為指定的值,執行靜態程式碼塊