• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

java中怎么样清除垃圾收集的对象(HashMap)

武飞扬头像
it1352
帮助108

前言

本文介绍了如何清除要被垃圾收集的对象(HashMap) - Java的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

遇到的问题

所以我在这里拥有的是一个 java 程序,它处理大量数据并将其存储到对象中(主要是哈希映射).在运行时间的某个时间点,数据变得无用,我需要丢弃,以便释放一些内存.

我的问题是丢弃这些数据以进行垃圾收集的最佳行为是什么?

我已经尝试了 map.clear(),但是这不足以清除地图分配的内存.

编辑(添加我尝试过的替代方案)

我也尝试过 system.gc() 来强制垃圾收集器运行,但是没有帮助

问题的答案

HashMap#clear 会将所有条目抛出 HashMap,但 它不会将其缩小到初始容量.这意味着您将有一个空的后备数组(在您的情况下,我猜)有数万个条目的空间.

如果您不打算重复使用 HashMap(数据量大致相同),只需丢弃整个 HashMap 实例(将其设置为 null).

除上述之外:

  • 如果 Map 的条目仍被系统的其他部分引用,即使从 Map 中删除它们也不会被垃圾回收(因为其他地方需要它们)
  • 垃圾收集在后台进行,并且仅在需要时进行.因此,您可能不会立即看到大量内存被释放,这可能不是问题.

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanehck
系列文章
更多 icon
同类精品
更多 icon
继续加载