为何一个 SpringBoot 堆内存中有大量的 Integer 对象?

2020-05-22 11:56:58 +08:00
 jaylee4869
jmap -histo 19183 | head -20
 num     #instances         #bytes  class name
----------------------------------------------
   1:        223718      460271832  [I
   2:       2125963      273642920  [C
   3:        323214      142451944  [B
   4:       1498297       35959128  java.lang.String
   5:        535649       28576352  [Ljava.lang.Object;
   6:        472738       26473328  java.util.LinkedHashMap
   7:        632837       20250784  juc.locks.AbstractQueuedSynchronizer$Node
   8:        231974       17470032  [Ljava.util.HashMap$Node;
   9:        426575       17063000  java.util.LinkedHashMap$Entry
  10:        452507       14480224  java.util.LinkedHashMap$LinkedKeyIterator
  11:        481794       11563056  java.util.ArrayList
  12:        108053        9508664  java.lang.reflect.Method
  13:          5536        9187024  [Ljava.util.concurrent.ConcurrentHashMap$Node;
  14:        267553        8561696  java.util.ArrayList$Itr
  15:        291985        7850920  [Ljava.lang.String;
  16:        125609        6029232  java.util.HashMap
  17:        165873        5307936  java.util.concurrent.ConcurrentHashMap$Node

一般来说,String 对象更多一点,也就是 [C 更多才对。。。好奇怪

1538 次点击
所在节点    Java
3 条回复
sweat89
2020-05-22 14:03:04 +08:00
明明就是[C 更多
SoloCompany
2020-05-23 15:48:37 +08:00
[I 是 int[] 不是 Integer[], 你的表述就存在错误
yizmaoaa
2020-05-24 11:57:43 +08:00
- - 你这个明显是 C 多。I 是占用空间大。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/674330

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX