我在研究哈希图的内部结构时遇到了以下细节:
实现是HashMap $ Entry对象的数组:
每个HashMap $ Entry包含:– int KeyHash –下一个对象–对象键–对象值
默认容量为16个条目
空大小为128个字节
HashMap的开销为48个字节,数组的开销为(16 +(条目* 4bytes))–加上HashMap $ Entry对象的开销
每个密钥额外的32bytes?值条目
因此,HashMap的开销为:– 48个字节,每个条目加上36个字节
谁能给我解释一下:“开销为HashMap 占用
48个字节,数组为(16 +(条目* 4个字节))” 和“每个键附加32 个字节?值条目” 因此,HashMap的开销为:– 48字节,每个条目加上36个字节“ ???
我不明白这些结论是如何得出的,即我们是如何发现有关哈希图的最终内存详细信息的。
我正在用Java阅读垃圾收集,遇到了游荡对象。
这些对象已分配内存,但未使用,也未进行垃圾回收。这些使JVM堆的大小不断增加并表示内存泄漏,这可能导致内存不足错误或垃圾收集器上的过多开销。
任何人都可以提供这些游荡对象的代码示例。