【发布时间】:2020-07-05 09:36:43
【问题描述】:
我想正确释放与HashMap 关联的内存。这个答案建议使用clear()
Map.clear() vs new Map : Which one will be better?
不过,它没有考虑到clear() 不会将容量缩小到原始大小。因此,清除 HashMap 的 10k 个项目,将留下这 10k 个项目的空间。
另一方面,这个答案建议使用null 并考虑到收缩并建议您使用null 而不是clear()
how to clear objects (HashMap) to be garbage collected - Java
我正在使用HashMap 在启动时缓存项目并在其他一些处理之后处理它们。当我用完它们时,我不再需要它们了。不过,如果用户决定执行相同的操作(很少发生),我会再次使用 HashMap 来缓存项目并处理它们,然后将它们删除。
我有点困惑。我应该使用哪种方法?
谢谢。
【问题讨论】:
-
'...清除
HashMap的 10k 个项目,将留下这 10k 个项目的空间':不,不会。它将为 10,000 个 *references*` 留下空间。