Java 7 HashMap中单个条目(键值对)的内存开销是多少?(使用64位Oracle Hotspot JVM)



Java HashMap中单个条目的内存开销是多少?(使用64位Oracle Hotspot JVM)。例如:它是24字节还是32字节?

HashMap.Entry(Java 6)或HashMap.Node(Java 8)的大小,两者都有一个int和三个引用。

如果引用是4字节(压缩OOPS),则12字节标头+4字节int+3*4字节引用=28字节,四舍五入到32字节以适合8字节边界。

如果引用为8字节,则16字节标头+4字节int+3*8字节引用=44字节,四舍五入到48字节以适合8字节边界。

HashMap集合为每个条目占用32个字节,加上条目数组的4个字节*映射容量。

最新更新