每当不再使用变量时,我是否每次都必须使用.clear()HashSet和HashMap?
我的应用程序中有很多临时变量,包括HashSets和HashMaps。例如,每当方法完成时,我是否必须清除它们?如果对象不再被某些东西使用,GC会自动将其删除吗?
我在问,因为很多人都指出,如果程序完成,我必须清除任何散列图中的数据,并且不再使用存储在hashmap中的数据。
答案 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。