Java 当功能在android中结束时,是否值得清除地图?

Java 当功能在android中结束时,是否值得清除地图?,java,android,Java,Android,在android中,我使用hashmaps、sparsearray和sparseintarray。在我使用的函数中,它们有时是临时对象。在函数结束之前,是否清除地图数据是一种良好的做法 谢谢 在android中,我使用hashmaps、sparsearray和sparseintarray。在我使用的函数中,它们有时是临时对象。在函数结束之前,是否清除地图数据是一种良好的做法 不,那没用 我想,如果你清除它,那么你就可以马上找回内存,而不是等待垃圾收集。那么这不就让它起作用了吗 清除集合只会删除对

在android中,我使用hashmaps、sparsearray和sparseintarray。在我使用的函数中,它们有时是临时对象。在函数结束之前,是否清除地图数据是一种良好的做法

谢谢

在android中,我使用hashmaps、sparsearray和sparseintarray。在我使用的函数中,它们有时是临时对象。在函数结束之前,是否清除地图数据是一种良好的做法

不,那没用


我想,如果你清除它,那么你就可以马上找回内存,而不是等待垃圾收集。那么这不就让它起作用了吗

清除集合只会删除对集合中的项的引用,因此您仍然必须等待垃圾回收来获取内存

在android中,我使用hashmaps、sparsearray和sparseintarray。在我使用的函数中,它们有时是临时对象。在函数结束之前,是否清除地图数据是一种良好的做法

不,那没用


我想,如果你清除它,那么你就可以马上找回内存,而不是等待垃圾收集。那么这不就让它起作用了吗

清除集合只会删除对集合中的项的引用,因此您仍然必须等待垃圾回收来获取内存

没有

没有必要这样做。由于hashmap是函数的本地对象,所以hashmap将由垃圾收集器收集,它是否为空没有区别。如果hashmap没有其他引用,也将收集其内容。它在地图内外的收集速度不会更快

因此,清除它只是浪费时间

然而,如果你担心内存,那么它一定是一些相当大的对象。如果是位图,您可以调用
bmp.recycle()
来帮助垃圾回收。

没有必要这样做。由于hashmap是函数的本地对象,所以hashmap将由垃圾收集器收集,它是否为空没有区别。如果hashmap没有其他引用,也将收集其内容。它在地图内外的收集速度不会更快

因此,清除它只是浪费时间


然而,如果你担心内存,那么它一定是一些相当大的对象。如果是位图,你可以调用
bmp.recycle()
来帮助垃圾回收。

它们是范围仅限于方法的对象吗?是的,它们仅限于方法。然后是否,这将一事无成。我想,如果你清除它,那么你就可以立即收回内存,而不是等待垃圾回收。那么,这难道不能让它工作吗?@omega,无论如何,你都要等待垃圾收集,你不能直接在Java中释放内存。因此,您对清除hashmap、sparsearray等的调用根本不会起任何作用,可能会稍微增加处理器负载(对于一些微不足道的量,例如一个方法调用),但不会影响释放内存的过程。这些对象的作用域是否仅限于该方法?是的,它们仅限于该方法,然后是否,我想,如果你清除了它,那么你就可以马上找回内存,而不是等待垃圾回收。那么,这难道不能让它工作吗?@omega,无论如何,你都要等待垃圾收集,你不能直接在Java中释放内存。因此,您对清除hashmap、sparsearray等的调用将毫无作用,可能会稍微增加处理器负载(对于一些微不足道的数量,例如一个方法调用),但不会影响释放内存的过程