2.堆:存儲對象,數組
3.虛擬機棧:存儲棧幀
棧幀:每call一個方法,就創建一個棧幀,裏面包含局部變量表,操作棧,動態鏈接,方法出口等信息
局部變量表:存儲基本數據類型(int,long,double...),對象引用reference,returnAddress類型。64位點long和double佔用兩個slot,其餘均只佔用一個slot。
對象引用:有句柄實現方式和直接指針實現方式。
句柄實現方式:reference指向java堆中的句柄池,每個對象的句柄包含兩個指針(指向java堆中實例池中的對象實例以及指向方法區中的對象類型)。
優點:當垃圾收集時,移動對象只涉及修改句柄指針,reference不用修改
直接指針實現方式:reference指向java堆中的對象,對象包含實例數據以及一個指向方法區中對象類型點指針。
優點:訪問對象實例速度快,相比句柄,少了一次指針定位。
4.本地方法棧:用於調用本地方法存儲相關信息。在sun的hotspot虛擬機中,虛擬機棧和本地方法棧合二爲一共用虛擬機棧。
5.程序計數器:字面意思,佔用很小的一點點內存。
6.直接內存:虛擬機以外的內存,通過調用本地方法申請。