Java和垃圾收集中的链表实现

时间:2010-03-02 11:04:03

标签: java data-structures reference garbage-collection linked-list

如果我有一个链表结构,我按如下方式实现clear()方法:

public void clear() {
    firstNode = null;
    size = 0;
}

它仍然可以正确收集垃圾,还是我想遍历每个节点,将nextNode设置为null?

没有一个节点可以直接从链表之外引用,所以在我的类之外不会有任何引用它们的情况,但是我不确定Java是否会正确地垃圾收集剩余的链接节点

3 个答案:

答案 0 :(得分:11)

这应该没问题 - Java处理循环引用等没有问题。

答案 1 :(得分:2)

由于列表中没有节点具有外部引用。将firstNode设置为null会使所有节点都符合GC的条件,因为无法通过外部参考访问任何节点。

答案 2 :(得分:1)

为了您的信息,Sun的LinkedList实现解析列表的所有元素并将它们设置为null

相关问题