您好,登錄后才能下訂單哦!
這篇文章主要介紹了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虛擬機的基本組成是什么內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。