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