Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 垃圾收集——关于linkedlist的两个案例_Java_Garbage Collection_Linked List - Fatal编程技术网

Java 垃圾收集——关于linkedlist的两个案例

Java 垃圾收集——关于linkedlist的两个案例,java,garbage-collection,linked-list,Java,Garbage Collection,Linked List,案例1: 如果有这样的LinkedList: A --> B --> C --> D A --> B --> C --> D 如果我将A.next=null,那么图形将是A-->null和B-->C-->D 节点B、C、D是否会被垃圾收集 案例2: 如果有这样的LinkedList: A --> B --> C --> D A --> B --> C --> D 如果我将A.next=A.next.next,那么图形

案例1: 如果有这样的LinkedList:

A --> B --> C --> D
A --> B --> C --> D
如果我将
A.next=null
,那么图形将是
A-->null
B-->C-->D

节点
B、C、D
是否会被垃圾收集

案例2: 如果有这样的LinkedList:

A --> B --> C --> D
A --> B --> C --> D

如果我将
A.next=A.next.next
,那么图形将是
A-->C-->D
,但B仍然像这样指向C:
B-->C
节点
B
会被垃圾收集吗?

案例1

Case 1: If there is a LinkedList like this:

A --> B --> C --> D
if I make A.next = null, so the graph would be A --> null and B --> C --> D

Will node B,C,D be garbage collected?
在这种情况下,如果不存在对B的引用,则B、C、D是垃圾收集的。如果有任何对象引用B,则这三个对象都存在并被视为独立链表

案例2

Case 2: If there is a LinkedList like this:

A --> B --> C --> D
if I make A.next = A.next.next, so the graph would be A --> C --> D but also B still points to C like this: B --> C Will node B be garbage collected?

同样的概念也适用于这里,如果有任何引用,那么B->C再次被视为独立的链表

只需make
B.next=null
GC将清除您提到的那些内存!由于它不在您收集实例的逻辑上,所以您创建的任何实例都可以被GC引用,同时通过程序检测到不可访问的
,它将清除它们@ling.s如果我不执行此操作,即使我无法访问节点B,如果我从根A遍历整个列表,谁“指向”(或引用)B,节点B也不会被垃圾收集?如果没有人这样做,那么B是不可到达的。B在任何情况下都可能不是强可达的,但如果它不是平凡可达的,那么故事就到此结束了。看见