虛擬機類加載機制.

虛擬機把描述類的數據從class文件加載到內存,並對數據進行校檢、轉換解析和初始化,最終形成可已被虛擬機直接使用的java類型,這就是虛擬機的類加載機制。
類的加載、連接和初始化過程都是在程序運行期間完成的,這樣雖然會令類加載時稍微增加一些性能開銷,但是會爲java應用程序提供高度靈活性,java語言運行期類加載的特性。
類從被加載到虛擬機內存中開始,到卸載出內存爲止,他的整個生命週期包括:加載,驗證,準備,解析,初始化,使用,卸載7個階段,其中驗證,準備,解析3個部分統稱爲連接,

堆分爲:新生代(1個eden、2個surivor)、老年代
方法區:永生代
分配擔保:老年代

虛擬機中第一個被執行的< clinit >()方法的類肯定是java.lang.Object

雙親委派模型 一種啓動類加載器(bootstrap classLoader),這個類加載器使用C++語言實現,是虛擬機的一部分;另一種就是所有其他的類加載器,這些類加載器都由java語言實現,獨立於系統外部,並且都是繼承自抽象類java.lang.ClassLoader.

棧幀是用於支持虛擬機進行方法調用和方法執行的數據結構,它是虛擬機運行時數據區中的虛擬機棧,的棧元素。棧幀存儲了方法的局部變量表、操作數棧、動態連接和方法返回地址等信息。每一個方法從調用開始到執行完成的過程,都對應着一個棧幀在虛擬機棧裏面從入棧到出棧的過程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章