JDK之內存模型以及棧與堆的關係

1.Java對象內存模型

1.首先一個對象,包含三塊:對象頭,實例數據和對齊補充的數據;

在這裏插入圖片描述

1.1.對象頭

1.2.實力數據

1.3.對齊補充的數據

2.方法區指向堆

1.我們知道,方法區主要是存儲的信息如下:
     1.1.類的結構信息:----->靜態存儲結構
     1.2.常量,靜態變量
2.private static Object obj=new Object();     
  這個很顯然,obj是屬於方法區的,但是同時new Object()對象是在堆中的,因此出現了方法區指向了堆的情況;

3.堆指向方法區

1.我們知道,方法區主要是存儲的信息如下:
     1.1.類的結構信息:----->靜態存儲結構
     1.2.常量,靜態變量
2.從上面我們知道Java對象的頭信息中會保存指向元對象的內存地址;
   private static Object obj=new Object();
   這個new Object()在堆中,但是具體創建對象的類結構都在方法區,也就說,new Object()同時也是指向了方法區    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章