Что запускает Java-сборщик мусора
Я немного запутался в том, как работает сборка мусора в Java.
Я получаю, что объект становится пригодным для сборки мусора, когда на него больше нет живых ссылок, но что, если у него есть ссылки на живые объекты?
Допустим, у меня есть коллекция узлов, которая снова ссылается на большее количество узлов
List
1 -> Node a -> Node b
2 -> Node c -> Node d
3 -> Node d -> Node c
4 -> Node e
5
Теперь, если я удалю список, узлы c d и e должны быть собраны мусором. Узел e больше не имеет ссылок на него, а узлы c и d имеют циклические ссылки.
Но как насчет Node a? Это будет мусор?
Будет ли это отличаться от того, есть ли у узла b внешние живые ссылки? Скажем, если у узла b есть ссылка на него из другого места, сделает ли это узел пребыванием в памяти?