【发布时间】:2019-07-28 20:55:24
【问题描述】:
- 单链表中的节点何时可以进行垃圾回收?
- 如果单链表中有一个节点是最后一个元素,则其下一个指针将指向 null。如果假设最后一个元素中的数据也为空。在这种情况下,数据和下一个指针都是空的。该元素是否有资格进行垃圾回收?
【问题讨论】:
标签: data-structures
【问题讨论】:
标签: data-structures
当且仅当没有对它的引用时,一个对象才是可回收的。
这意味着,在 对它的所有引用 被丢弃之前,该对象不会成为 gc 的候选对象。
如果单链表中有一个节点是最后一个元素 那么它的下一个指针将指向空值。如果假设数据在 最后一个元素也是空的。在这种情况下,数据和下一个 指针为空。这个元素是否有资格成为垃圾 收藏?
还是不行!!最后一个节点可以从倒数第二个元素访问。 Java 不会清除最后一个元素。它与对象的内容为空无关。
【讨论】:
没有节点不符合垃圾回收条件,因为该节点仍从倒数第二个节点访问。
此节点仅适用于垃圾回收,倒数第二个节点下一个指针为 NULL。
示例: 有一个有5个节点的链表。 1->2->3->4->5->空;
案例:1 节点 5 下一个字段包含 NULL。 如果节点 5 的值也包含 NULL,但节点 4 的下一个字段仍然指向节点 5,因此节点 5 不符合垃圾回收条件。
【讨论】: