我有一个哈希表,
HashTable ht = { (1, 1), (2, 1), (3, 1) }
现在,我实现它,如Integer foo = Integer(1)并声明哈希表,如,
HashTable ht = { (foo, foo), (2, foo), (3, foo) }
现在,根据我从this理解,它将减少JVM使用的堆空间。这是正确的吗?另一点是,在C中,我通常使用像
这样的结构HashTable ht = { (1, mem), (2, mem), (3, mem) }
{ where mem is memory location (say 10) of 1 }
然后使用该位置访问该值。现在,如果mem值小于Int(比如Byte),我可以节省空间。但是,我不明白如何在Java中实现它。 或者还有其他方法可以减少哈希表的空间吗? (意味着通过减少以Java的方式重复存储相同的对象)。有什么想法吗?提前致谢。
答案 0 :(得分:1)
使用Integer
的最节省空间的方法是使用Integer.valueOf()
,它使用flyweight设计模式来减少小值的内存使用量。介于-128和(通常)127之间的值不需要额外的内存。