Java運行時數據區

1、運行時數據區劃分

在這裏插入圖片描述

2、各區域職責介紹
  • 程序計數器
    每個線程獨有,記錄線程被中斷時的執行的1字節碼指令位置,可以理解爲線程執行到的行號;該部分內存是JVM內存中唯一不會出現OOM的內存區域;執行native方法時程序計數器爲空;
  • 虛擬機棧
    每個方法在被執行的時候,都會在線程對應的棧中創建一個棧幀,棧幀包含了局部變量表,操作數棧,動態鏈接,方法出口等信息;局部變量表中存放8種基本類型的變量、對象引用和returnAddress;
  • 本地方法棧
    和虛擬機棧功能類似,本地方法棧只爲本地方法提供服務;

  • Java堆分爲了新生代和老年代,其中新生代又分爲了Eden空間、From Survivor空間、To Survivor空間;
  • 方法區
    存儲類信息,常量,靜態變量,運行時常量池,即時編譯後的代碼;在Java7中方法區的實現爲永久代,永久代在JVM內存中;在Java8中方法區的實現爲元數據區,元數據區在物理直接內存中;
發佈了21 篇原創文章 · 獲贊 13 · 訪問量 8181
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章