其中類加載的過程包括了加載、驗證、準備、解析、初始化五個階段。在這五個階段中,加載、驗證、準備和初始化這四個階段發生的順序是確定的,而解析階段則不一定,它在某些情況下可以在初始化階段之后開始,這是為了支持Java語言的運行時綁定(也成為動態綁定或晚期綁定)*。
另外注意這里的幾個階段是按順序開始,而不是按順序進行或完成,因為這些階段通常都是互相交叉地混合進行的,通常在一個階段執行的過程中調用或激活另一個階段。
1、類的加載:查找并加載類的二進制數據
2、連接
驗證:確保被加載的類的正確性準備: 為類的靜態變量分配內存,并將其初始化為默認值解析:把類中的符號引用轉換為直接引用
3、初始化:為類的靜態變量賦予正確的初始值,JVM負責對類進行初始化,主要對類變量進行初始化。
4、使用: 類訪問方法區內的數據結構的接口, 對象是Heap區的數據
5、卸載: 結束生命周期