java虛擬機的基本組成:
(影片教學分享:java課程)
類別載入子系統、運行時資料區(JVM記憶體模型)、執行引擎、本機方法介面
#類別載入器:
主要負責把編譯好的.class字節碼檔案裝入運行時資料區,以供運行時資料區使用。
運行時資料區(JVM記憶體模型):
1、堆:主要存放對象,多執行緒共享(垃圾回收的主要區域)。
2、方法區:主要存放常數,靜態變量,類別元資訊(類別名,方法,字段,版本等等)。
3、執行緒堆疊:儲存方法參數、局部變數、中間運算結果、物件的參考、並提供部分其它模組工作所需的資料等。
4、本機方法堆疊: 本地方法堆疊為虛擬機器使用到的native方法服務。
5、程式計數器:目前執行緒所執行的字節碼的行號指示器,執行本地方法時為null。
執行引擎:
執行引擎是JVM執行Java字節碼的核心,執行方式主要分為解釋執行、編譯執行、自適應最佳化執行、硬體晶片執行方式。
本地方法介面:
非java語言實作的方法介面。
jdk1.8 jvm記憶體結構圖:
JVM記憶體模型1.8之前與1.8差異:
#主要差異:
1、元資料區取代了永久代。元空間的本質和永久代類似,都是JVM規範中方法區的實作(ps:方法區是java虛擬機中的規範,而永久代和元空間都是方法區的實作)。
2、元資料區從虛擬機器移動到了本機記憶體。
3、jdk1.8中常數池和靜態變數移動到了堆中儲存(邏輯上還是屬於方法區)
相關推薦:java入門
以上是java虛擬機器的基本組成介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!