Java內存結構

JVM總圖:

類加載器,執(zhí)行引擎,運行時數(shù)據(jù)區(qū)

image.png

類加載子系統(tǒng),執(zhí)行引擎,運行時數(shù)據(jù)區(qū),三部分關系圖

image.png

線程獨享部分結構關系

image.png

類的加載過程(生命周期)

image.png

類加載器

image.png

類加載機制

image.png

存放Java對象,所有的對象(包括數(shù)組,但Class對象除外)數(shù)據(jù)實際存放地方。堆是程序級別,每一個Java程序共享一個堆(所以存在多線程訪問堆內存同步問題)

image.png

jdk1.8:取消了永久代,由元數(shù)據(jù)區(qū)替代,常量池在元數(shù)據(jù)區(qū)
jdk1.7:有永久代,但已經逐步“去永久代”,常量池在堆
jdk1.6:有永久代,常量池在方法區(qū)

方法區(qū)

存儲了每個類的信息(包括類的名稱、方法信息、字段信息)、靜態(tài)變量、常量以及編譯器編譯后的代碼等
https://www.cnblogs.com/duanxz/p/3728737.html

存的是引用(如果是基本類型,則存的是值),引用(直接或間接)指向堆中的對象。棧是線程級別,每一個線程有各自的棧。棧又分為兩種,一是Java方法棧,一是本地方法棧(nativie method stack)。另外,每個線程都有各自的程序計數(shù)器,也是棧格式的。

直接內存

堆和棧區(qū)別

https://www.cnblogs.com/ityouknow/p/5603287.html
https://www.cnblogs.com/ityouknow/p/5610232.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • [toc] 參考:Java虛擬機詳解02----JVM內存結構深入理解java虛擬機 精華總結(面試)深入理解JV...
    小小少年Boy閱讀 956評論 0 1
  • 一、運行時數(shù)據(jù)區(qū)域 Java虛擬機管理的內存包括幾個運行時數(shù)據(jù)內存:方法區(qū)、虛擬機棧、本地方法棧、堆、程序計數(shù)器,...
    加油小杜閱讀 1,588評論 1 15
  • 《深入理解Java虛擬機》筆記_第一遍 先取看完這本書(JVM)后必須掌握的部分。 第一部分 走近 Java 從傳...
    xiaogmail閱讀 5,476評論 1 34
  • 在一個方法內部定義的變量都存儲在棧中,當這個函數(shù)運行結束后,其對應的棧就會被回收,此時,在其方法體中定義的變量將不...
    Y了個J閱讀 4,576評論 1 14
  • YouTube是一家成立于美國加州的企業(yè),后來被Google收購,現(xiàn)在隸屬于谷歌公司的一家子公司。營運視頻網(wǎng)站,屬...
    Stephanus閱讀 3,881評論 0 10

友情鏈接更多精彩內容