JVM運行時數據區域詳解

參考文章:
  • 《Java Se11 虛擬機規范》
  • 《深入理解Java虛擬機-JVM高級特性與最佳實踐 第3版》- 周志明
本文基于Java Se 11講解 。
根據《Java虛擬機規范》的規定,Java虛擬機所管理的內存將會包括以下幾個運行時數據區域:
JVM運行時數據區域詳解

文章插圖
對于不同的虛擬機實現 , 在運行時數據區的實現上并不完全相同 。對于常用的HotSpot虛擬機來說 , 它的運行時數據區如下:
JVM運行時數據區域詳解

文章插圖
主要區別在于,HotSpot使用了直接使用本地內存(即機器本身內存)的元空間(metaspace)來實現方法區 。
下面針對每個具體的數據區域進行詳細的介紹 。
1. 程序計數器
程序計數器(

    推薦閱讀