5

我正在构建一个应用程序,想知道将未使用的对象设置为 nil 是否是生产级编码中的常见做法。

我知道这只是对垃圾收集器的提示,并不总是处理对象。

4

3 回答 3

9

根据这个线程

如果您使用完成员对象,将其设置为nil将引发被引用的对象被垃圾收集。如果它是一个局部变量,方法 exit 将做同样的事情。

也就是说,如果您要求将成员明确设置为nil.

于 2013-01-01T02:18:39.897 回答
1

不,这不是常见的做法。只有在极少数情况下,您明确地将 object 设置为 nil。

例如,在某些数据结构的实现中,将对象设置为 nil 是有意义的。假设您实现了一个缓存并提供了一种删除键的方法。让我们进一步假设缓存在内部使用一个数组来保存对已删除对象的引用。然后建议通过将它们设置为 nil 来删除对已删除对象的所有引用。

然而,在实践中,这些情况并不经常发生。

于 2013-01-01T02:24:02.287 回答
0

您不需要做任何事情来给垃圾收集器任何提示。只需使用内存效率足够高的算法,它会为您处理其余的事情。

于 2013-01-01T02:19:32.077 回答