各種Java對象占用內(nèi)存大小

JOL的全稱是Java Object Layout抽高。是一個用來分析JVM中Object布局的小工具道盏。包括Object在內(nèi)存中的占用情況因苹,實例對象的引用情況等等鞭呕。

引入依賴:

<dependency>
  <groupId>org.openjdk.jol</groupId>
  <artifactId>jol-core</artifactId>
  <version>0.10</version>
</dependency>

相關(guān)API方法:

private static void testObj() {
    Object obj = new Object();
    System.out.println(ClassLayout.parseInstance(obj).toPrintable());
}

1.object對象占用幾個字節(jié)

答案:16字節(jié)蛤育。
其中對象頭占用12字節(jié),對齊填充4的字節(jié)葫松。

2.String對象占用幾個字節(jié)

答案JDK11版本中缨伊,占用24字節(jié)。
其中對象頭占用12字節(jié)进宝,byte[]數(shù)組占用4字節(jié)刻坊,int類型的hash屬性占用4字節(jié),byte類型的coder占用1字節(jié)党晋,對齊填充3個字節(jié)谭胚。

java.lang.String object internals:
 OFFSET  SIZE     TYPE DESCRIPTION                               VALUE
      0     4          (object header)                           05 00 00 00 (00000101 00000000 00000000 00000000) (5)
      4     4          (object header)                           00 00 00 00 (00000000 00000000 00000000 00000000) (0)
      8     4          (object header)                           08 18 00 00 (00001000 00011000 00000000 00000000) (6152)
     12     4   byte[] String.value                              [97, 97, 97]
     16     4      int String.hash                               0
     20     1     byte String.coder                              0
     21     3          (loss due to the next object alignment)
Instance size: 24 bytes
Space losses: 0 bytes internal + 3 bytes external = 3 bytes total

3.Integer類型占用幾個字節(jié)(基礎(chǔ)類型的裝箱)

答案:占用16字節(jié)。
其中對象頭12字節(jié)未玻,實例數(shù)據(jù)int占用4字節(jié)灾而;

java.lang.Integer object internals:
 OFFSET  SIZE   TYPE DESCRIPTION                               VALUE
      0     4        (object header)                           05 00 00 00 (00000101 00000000 00000000 00000000) (5)
      4     4        (object header)                           00 00 00 00 (00000000 00000000 00000000 00000000) (0)
      8     4        (object header)                           e8 39 01 00 (11101000 00111001 00000001 00000000) (80360)
     12     4    int Integer.value                             100000
Instance size: 16 bytes
Space losses: 0 bytes internal + 0 bytes external = 0 bytes total

4.Long占用幾個字節(jié)

答案:占用24個字節(jié)。
其中對象頭12字節(jié)扳剿,實例數(shù)據(jù)long占用8字節(jié)旁趟,對齊填充4字節(jié)(必須是8的整數(shù)倍)。

java.lang.Long object internals:
 OFFSET  SIZE   TYPE DESCRIPTION                               VALUE
      0     4        (object header)                           05 00 00 00 (00000101 00000000 00000000 00000000) (5)
      4     4        (object header)                           00 00 00 00 (00000000 00000000 00000000 00000000) (0)
      8     4        (object header)                           38 3c 01 00 (00111000 00111100 00000001 00000000) (80952)
     12     4        (alignment/padding gap)                  
     16     8   long Long.value                                100000
Instance size: 24 bytes
Space losses: 4 bytes internal + 0 bytes external = 4 bytes total

5.Object[100]占用幾個字節(jié)

答案:416字節(jié)庇绽。
其中對象頭16字節(jié)锡搜,對齊填充100*4=400字節(jié)。

[Ljava.lang.Object; object internals:
 OFFSET  SIZE               TYPE DESCRIPTION                               VALUE
      0     4                    (object header)                           01 00 00 00 (00000001 00000000 00000000 00000000) (1)
      4     4                    (object header)                           00 00 00 00 (00000000 00000000 00000000 00000000) (0)
      8     4                    (object header)                           88 3e 01 00 (10001000 00111110 00000001 00000000) (81544)
     12     4                    (object header)                           64 00 00 00 (01100100 00000000 00000000 00000000) (100)
     16   400   java.lang.Object Object;.<elements>                        N/A
Instance size: 416 bytes
Space losses: 0 bytes internal + 0 bytes external = 0 bytes total

5.String[100]占用幾個字節(jié)

答案:416字節(jié)瞧掺。
其中對象頭16字節(jié)耕餐,String的實例數(shù)據(jù)+對齊填充占用400字節(jié)。

[Ljava.lang.String; object internals:
 OFFSET  SIZE               TYPE DESCRIPTION                               VALUE
      0     4                    (object header)                           01 00 00 00 (00000001 00000000 00000000 00000000) (1)
      4     4                    (object header)                           00 00 00 00 (00000000 00000000 00000000 00000000) (0)
      8     4                    (object header)                           58 55 02 00 (01011000 01010101 00000010 00000000) (152920)
     12     4                    (object header)                           64 00 00 00 (01100100 00000000 00000000 00000000) (100)
     16   400   java.lang.String String;.<elements>                        N/A
Instance size: 416 bytes
Space losses: 0 bytes internal + 0 bytes external = 0 bytes total

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辟狈,一起剝皮案震驚了整個濱河市肠缔,隨后出現(xiàn)的幾起案子夏跷,更是在濱河造成了極大的恐慌,老刑警劉巖明未,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件槽华,死亡現(xiàn)場離奇詭異,居然都是意外死亡趟妥,警方通過查閱死者的電腦和手機猫态,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來煮纵,“玉大人懂鸵,你說我怎么就攤上這事⌒惺瑁” “怎么了匆光?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長酿联。 經(jīng)常有香客問我终息,道長,這世上最難降的妖魔是什么贞让? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任周崭,我火速辦了婚禮,結(jié)果婚禮上喳张,老公的妹妹穿的比我還像新娘续镇。我一直安慰自己,他們只是感情好销部,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布摸航。 她就那樣靜靜地躺著,像睡著了一般舅桩。 火紅的嫁衣襯著肌膚如雪酱虎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天擂涛,我揣著相機與錄音读串,去河邊找鬼。 笑死撒妈,一個胖子當著我的面吹牛恢暖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播踩身,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼胀茵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了挟阻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎附鸽,沒想到半個月后脱拼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡坷备,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年熄浓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片省撑。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡赌蔑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出竟秫,到底是詐尸還是另有隱情娃惯,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布肥败,位于F島的核電站趾浅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏馒稍。R本人自食惡果不足惜皿哨,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望纽谒。 院中可真熱鬧证膨,春花似錦、人聲如沸鼓黔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽请祖。三九已至订歪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肆捕,已是汗流浹背刷晋。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留慎陵,地道東北人眼虱。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像席纽,于是被迫代替她去往敵國和親捏悬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容