Java 哈希表与对象引用的问题

2024-03-22

我有一个哈希表,例如

HashTable ht = { (1, 1), (2, 1), (3, 1) }

现在,我像 Integer foo = Integer(1) 一样实现它,并像这样声明哈希表:

HashTable ht = { (foo, foo), (2, foo), (3, foo) }

现在,据我了解this http://www.kdgregory.com/index.php?page=java.refobj, 它将减少 JVM 使用的堆空间。它是否正确 ?另一点是,在 C 中,我通常使用这样的结构,

HashTable ht = { (1, mem), (2, mem), (3, mem) } 
{ where mem is memory location (say 10) of 1 }

然后使用该位置来访问该值。现在,如果 mem 值小于 Int (比如 Byte),我可以节省空间。但是,我不明白如何在 Java 中实现这一点。或者还有其他方法可以减少哈希表的空间吗? (意味着通过Java的方式减少重复存储相同的对象)。


最节省空间的方式Integers 是使用Integer.valueOf(),它使用享元设计模式来减少小值的内存使用。 -128 和(通常)127 之间的值不需要额外的内存。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 哈希表与对象引用的问题 的相关文章

随机推荐