jmap 直方图中的这些对象是什么?

2022-09-01 03:44:51

我正在使用jmap来获取堆的直方图。我不确定被称为“[C”,“[S”,“[I”和“[B”的对象是什么。有人知道吗?

$ jmap -histo 3299

 num     #instances         #bytes  class name
----------------------------------------------
   1:          9804       19070632  [Ljava.util.HashMap$Entry;
   2:         38074        6216960  [Ljava.lang.Object;
   3:         62256        4727832  [C
   4:         19665        3124744  <constMethodKlass>
   5:         19665        2365864  <methodKlass>
   6:         57843        2313720  java.lang.String
   7:          1662        2060528  <constantPoolKlass>
   8:         21121        1842344  [S
   9:         37772        1743888  <symbolKlass>
  10:          2554        1655632  [I
  11:         63710        1529040  java.lang.Integer
  12:          1662        1264184  <instanceKlassKlass>
  13:          1515        1196224  <constantPoolCacheKlass>
  14:         24351        1168848  java.util.HashMap$Entry
  15:         18706        1047536  java.net.SocketTimeoutException
  16:          4301         784416  [B
 ...
  23:          2588         242616  [[I

答案 1
  • [C是一个char[]
  • [S是一个short[]
  • [I是一个int[]
  • [B是一个byte[]
  • [[I是一个int[][]

JavaDoc for Class.getName() 包含详细信息。


答案 2