带有对象引用的c-Java哈希表问题



我有一个类似于的哈希表

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

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

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

现在,正如我从中了解到的,它将减少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之间的值不需要额外的内存。

最新更新