我最近在一次采访中被问到一个问题,例如,是否创建了具有100个键值对的HashMap,它将消耗多少内存。任何人都可以解释地图中每个条目消耗多少。
答案 0 :(得分:1)
这将取决于平台,例如JVM使用压缩的opts,内存中的对象对齐,哈希中的冲突等。最重要的是,您必须包括键和条目的大小,它们是独立的对象。要获取数据结构的实际内存使用情况,您应该检查内存转储,但即使是it's not straightforward也是如此。
如果您可以将问题简化为标准java.util.HashMap
的大小,容量和负载系数,则:
HashMap
以上将存储大小为256的Node[] table
,可容纳100个元素。