java物件記憶體

2021-08-26 04:53:21 字數 410 閱讀 4235

堆區:

1.儲存的全部是物件,每個物件都包含乙個與之對應的class的資訊。(class的目的是得到操作指令)。

2.jvm只有乙個堆區(heap)被所有執行緒共享,堆中不存放基本型別和物件引用,只存放物件本身。

棧區:

1.每個執行緒包含乙個棧區,棧中只儲存基礎資料型別的物件和自定義物件的引用(不是物件),物件都存放在堆區中。

2.每個棧中的資料(原始型別和物件引用)都是私有的,其他棧不能訪問。

3.棧分為3個部分:基本型別變數區、執行環境上下文、操作指令區(存放操作指令)。

方法區:

1.又叫靜態區,跟堆一樣,被所有的執行緒共享。方法區包含所有的class和static變數。

2.方法區中包含的都是在整個程式中永遠唯一的元素,如class,static變數。

java物件占用記憶體分析

前言 空物件佔8個位元組 有資料成員的話,你把資料成員按基本資料型別和物件引用分開統計。基本資料型別按byte boolean 1,char short 2,int float 4,long double 8,累加,然後對齊到8的倍數。物件引用按每個4位元組,累加,然後對齊到8個位元組的倍數。物件占...

JAVA物件的記憶體布局

物件在記憶體中儲存的布局分為3塊區域 物件頭,例項資料,對齊填充 物件頭 包含兩部分資訊,第一部分儲存物件物件執行時資料,如雜湊碼 gc分代年齡 鎖狀態標誌 執行緒持有的鎖 偏向執行緒id,偏向時間戳。第二部分是型別指標,即物件指向它的類元資料的指標,jvm通過這個指標來指明這個物件是那個類的例項。...

java物件占用記憶體情況

32位作業系統中 乙個物件的物件頭占用8位元組,物件中的乙個引用佔4個位元組,需要補齊位8的倍數 一維陣列的為特殊物件,物件頭佔8個位元組,加上4位元組的長度數量,加上陣列長度n 陣列型別 string型別占用的位元組數字40 2n pandding 補齊為8的個數 64位作業系統中 乙個物件的物件...