gpt4 book ai didi

java - 自定义链表实现垃圾回收

转载 作者:行者123 更新时间:2023-11-30 10:28:44 25 4
gpt4 key购买 nike

给定 java 中的自定义链表实现(来自 Cracking The Coding Interview)

public class Node {
public Node next = null;
public int data;

public Node(int d) {
data = d;
}

protected void appendToTail(int d){
Node end = new Node(d);
Node n = this;
while (n.next != null) {
n = n.next;
}
n.next = end;
}
}

如果我们要从中创建一个链表,然后在没有临时变量指向原始头的情况下遍历它,即

Node list = new Node(5);
list.appendToTail(2);
list.appendToTail(4);

给我们一个列表

5 -> 2 -> 4

如果我发布会发生什么

list = list.next;

这会不会像在 C 中那样发生内存泄漏?还是 Java 会进行垃圾收集?

最佳答案

简短的回答:不,不会有内存泄漏。

如果您将指针前进到指向第二个节点,这意味着对头部的引用丢失了。这是假设您没有其他对头部的引用。

没有任何引用指向它,这个对象将被标记为垃圾收集。

关于java - 自定义链表实现垃圾回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44420606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com