每当字段不再使用时,我是否每次都必须使用.clear()HashSet和HashMap?

时间:2018-04-27 14:24:37

标签: java hashmap garbage-collection hashset

每当不再使用变量时,我是否每次都必须使用.clear()HashSet和HashMap?

我的应用程序中有很多临时变量,包括HashSets和HashMaps。例如,每当方法完成时,我是否必须清除它们?如果对象不再被某些东西使用,GC会自动将其删除吗?

我在问,因为很多人都指出,如果程序完成,我必须清除任何散列图中的数据,并且不再使用存储在hashmap中的数据。

3 个答案:

答案 0 :(得分:1)

当hashmap超出范围时,它将自动被垃圾收集,所以如果你所做的只是让它被删除,你就不需要打电话给。

如果您想重新使用地图但希望清空所有数据,则清除是有益的。

答案 1 :(得分:0)

GC会在内存不足的情况下为您清除..但最好设置您不再使用的参考文献null

答案 2 :(得分:0)

HashMap和HashSet是java中的对象。因此,当一个对象不再被引用且无法访问时,它将有资格获得垃圾收集。

但是,如果您认为存在内存泄漏,那么我建议您在不需要时立即将相关HashMap和HashSet的所有Object引用设置为null。

您可以在此处参考内存泄漏:

https://dzone.com/articles/memory-leak-andjava-code

如果您不确定内存泄漏,为了安全起见,您可以将对象的引用设置为null。