让我们说我已经实现了一个双向链表,其中有一个sentinal节点,每个其他节点都有一个指向前一个和下一个节点的指针。
看起来像这样:
第1项< - > Item2< - >项目3
我的sentinal将指向Item1和Item3
如果我将我的sentinal指针设置为null(不再指向Item1和Item 3),那么垃圾收集器是否会收集所有项目?
答案 0 :(得分:-1)
如果您将节点指向了Item1和Item3,并且您通过引用null取消引用,则仍然有从item2到item1以及从item2到item3的引用。所以他们没有资格进行垃圾收集。 一般来说,“垃圾收集器会收集所有物品吗?”原则上是错误的,因为对象只能用于垃圾收集,但是没有这样的保证(该对象将被垃圾收集)。