java - 如何在java中引用hashmap/arraylist null来释放所有内存

标签 java core

HashMap.clear()ArrayList.clear() 是释放内存来缩小大小还是保持不变?

如何使 arraylist 或 hashmap 引用null 以允许 gc。

最佳答案

如果您clear() 您的MapCollection,那么垃圾收集器可以收集其中包含的对象,只要因为它们没有在其他地方被引用。与删除对 MapCollection 本身的所有引用相同(通过将其设置为 null 无处不在):只要 Map,例如,是唯一“知道”这些引用的对象,删除对 Map 本身的所有引用将允许垃圾收集器收集 Map,因此也其中包含的对象(当然,只要它们没有在其他地方被引用)。

但是仅仅清除 Map 并不能保证垃圾收集器会真正运行——它只是可以从内存中清除这些对象,如果它运行的话。但通常你不应该为此担心。因此,您很可能不会注意到调用 clear() 会直接和立即获得内存,而只是因为垃圾收集器并非一直运行。

关于java - 如何在java中引用hashmap/arraylist null来释放所有内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31724480/

相关文章:

java - 为什么java中的文件操作不需要i++?

java - 将 JSON 文件从 url 保存到内部存储中

java - 如何将具有相同内容的二叉搜索树的节点推送到堆栈中

java - JRadioButton 无法转换为 ButtonModel

c++ - 用于核心转储分析的 Gdb 脚本

Java split方法无法正常工作?

c++ - 打印以记录核心转储文件堆栈,Windows 上的 C++?

java - 返回错误值的方法

Java ETL流程

linux - 在 Redhat 中获取 SIGBUS(总线错误)@ 0 (0)killed by SIGBUS (core dumped)