【发布时间】:2011-10-19 14:51:01
【问题描述】:
假设您有引用 A -> B -> C -> D。当您从A 中删除对B 的引用时,您将得到一个孤立的对象链B -> C -> D。
C 和 D 是否会被垃圾回收,即使无法找到它们(因为没有引用 B)?
我认为 GC 对此很聪明,并且会解决任何此类依赖关系。
但是,我查看了 source code 的 LinkedList 类,发现一些与此信念相反的东西。我注意到当列表为clear()ed 时,对每个链接的所有引用都明确设置为null,因此使其成为O(n) 操作。这样做有什么理由/好处吗?
【问题讨论】:
标签: java garbage-collection linked-list