Предположим, у вас есть ссылки A -> B -> C -> D
. Когда вы удаляете ссылку на B
из A
, у вас остается бесхозная цепочка объектов B -> C -> D
.
Will C
и D
подлежат сборке мусора, даже если к ним невозможно добраться (поскольку нет ссылки на B
)?
Я полагаю, что GC - это умно и решит любые такие зависимости.
Однако я просмотрел исходный код для класса LinkedList
и обнаружил нечто противоречащее этому мнению. Я заметил, что когда список clear ()
ed, все ссылки на каждую ссылку явно устанавливаются на null
, что делает его O (n)
] операция. Есть ли для этого какие-то причины / преимущества?