
Java的類加載機制
在這五個階段中,加載、驗證、準(zhǔn)備和初始化這四個階段發(fā)生的順序是確定的.
而解析階段則不一定,它在某些情況下可以在初始化階段之后開始,這是為了支持 Java 語言的運行時綁定(也成為動態(tài)綁定或晚期綁定)。另外注意這里的幾個階段是按順序開始,而不是按順序進行或完成,因為這些階段通常都是互相交叉地混合進行的,通常在一個階段執(zhí)行的過程中調(diào)用或激活另一個階段。
?Java 中的綁定
綁定指的是把一個方法的調(diào)用與方法所在的類(方法主體)關(guān)聯(lián)起來
靜態(tài)綁定:即前期綁定。在程序執(zhí)行前方法已經(jīng)被綁定,此時由編譯器或其它連接程序?qū)崿F(xiàn)。針對 Java,簡單的可以理解為程序編譯期的綁定。Java 當(dāng)中的方法只有 final,static,private 和構(gòu)造方法是前期綁定的。
動態(tài)綁定:即晚期綁定,也叫運行時綁定。在運行時根據(jù)具體對象的類型進行綁定。在 Java 中,幾乎所有的方法都是后期綁定的。
準(zhǔn)備階段
僅對static變量賦值為0.(final static 除外)
解析階段
相當(dāng)于c++鏈接階段
初始化階段

輸出結(jié)果3,4,2,100,5