Чтобы сделать объект пригодным для повторного использования в среде сбора мусора, вы должны убедиться, что на него нет ссылок из достижимых объектов.
Сборка мусора определяет, какие объекты достижимы по следующим ссылкам.Когда вы перезаписываете ссылку или устанавливаете ее на null
, вы прожигаете мост до целевого объекта, и если нет другого способа добраться до этого объекта, память может быть восстановлена.
Насколько далекокак я могу сказать, вам не нужна эта строка:
node.parent=null;
, потому что node
становится недоступным, когда он удаляется из ArrayList (если только нет указателя на него в другом месте приложения).Если node
недоступен, то не имеет значения, на что он указывает, потому что он уже потоплен.
Если узлы не собираются, но вы думаете, что они должны быть, попробуйте выяснить, на что указываетих.Это может быть даже параметр или переменная в стеке, где-то сохраняющая память.
Отказ от ответственности: Я не знаю Java, поэтому не знаю точно, как работает ее виртуальная машина.Я собираюсь, насколько мне известно, о сборке мусора в целом.