我用MAT工具试了一下,发现我的感觉可能有问题。
我比较了一下Hashmap和两个String数组的内存情况(479个key,value对,String的长度都比较小(1-5)),MAT的统计结果如下:
ShallowHeapRetainedHeap
Hashmap4815,656
String[]1,9281,928
String2440(48)
仔细计算了一下,1928应该是String数组本身占用的内存(479*4+12=1928)。而一个String对象占用内存似乎是24bytes。如果这样的话24*479*2=22,992bytes,比Hashmap占用的内存还大。是MAT统计的结果有问题吗?到底这个内存占用应该怎么计算呢?
【在kobe2000(老天爷饿不死瞎家雀儿)的大作中提到:】
:这俩占用内存一样啊
如果觉得《hashmap value占用空间大小_求比HashMap占用内存少的查找方法》对你有帮助,请点赞、收藏,并留下你的观点哦!