【问题标题】:When is a node in a singly linked list eligible for garbage clollection单链表中的节点何时可以进行垃圾回收
【发布时间】:2019-07-28 20:55:24
【问题描述】:
  1. 单链表中的节点何时可以进行垃圾回收?
  2. 如果单链表中有一个节点是最后一个元素,则其下一个指针将指向 null。如果假设最后一个元素中的数据也为空。在这种情况下,数据和下一个指针都是空的。该元素是否有资格进行垃圾回收?

【问题讨论】:

    标签: data-structures


    【解决方案1】:

    当且仅当没有对它的引用时,一个对象才是可回收的。

    这意味着,在 对它的所有引用 被丢弃之前,该对象不会成为 gc 的候选对象。

    如果单链表中有一个节点是最后一个元素 那么它的下一个指针将指向空值。如果假设数据在 最后一个元素也是空的。在这种情况下,数据和下一个 指针为空。这个元素是否有资格成为垃圾 收藏?

    还是不行!!最后一个节点可以从倒数第二个元素访问。 Java 不会清除最后一个元素。它与对象的内容为空无关。

    【讨论】:

      【解决方案2】:

      没有节点不符合垃圾回收条件,因为该节点仍从倒数第二个节点访问。

      此节点仅适用于垃圾回收,倒数第二个节点下一个指针为 NULL。

      示例: 有一个有5个节点的链表。 1->2->3->4->5->空;

      案例:1 节点 5 下一个字段包含 NULL。 如果节点 5 的值也包含 NULL,但节点 4 的下一个字段仍然指向节点 5,因此节点 5 不符合垃圾回收条件。

      【讨论】:

        猜你喜欢
        • 2023-03-26
        • 1970-01-01
        • 2012-03-15
        • 2015-05-15
        • 2016-12-27
        • 1970-01-01
        • 1970-01-01
        • 2012-01-18
        • 1970-01-01
        相关资源
        最近更新 更多