Как сказал Рассел, здесь нет утечки памяти.
Объект имеет право на сборку мусора, когда он недоступен ни одному потоку.
Если на объект не ссылается ни один другой объект, он никогда не будет доступен.
Но если A и B ссылаются друг на друга, это не значит, что они достижимы, потому что они оба могут быть недоступны из любого потока. Это то, что мы называем Остров изоляции
Обратите внимание, что в некоторых случаях объект, достижимый из потока, может быть собран, когда вы не используете обычные ссылки (по умолчанию), а когда вы используете мягкие или слабые ссылки.
достижимость
Переход от самого сильного к слабому, различные уровни достижимости
отражать жизненный цикл объекта. Они оперативно определены как
следует: объект сильно достижим, если он может быть достигнут
поток без обхода каких-либо ссылочных объектов. Недавно созданный
объект сильно доступен тем потоком, который его создал. Объект
легко достижимо, если оно не сильно достижимо, но может быть достигнуто
пройдя мягкую ссылку. Объект слабо доступен, если он
ни сильно, ни мягко достижимо, но может быть достигнуто путем перемещения
слабая ссылка. Когда слабые ссылки на слабодоступные
объект очищается, объект становится пригодным для завершения.
объект фантомно достижим, если он не является ни сильно, ни мягко, ни
Слабо достижим, он был доработан, и некоторые призрачные ссылки
относится к этому. Наконец, объект недоступен, и, следовательно,
имеет право на рекультивацию, когда это не достижимо ни в одном из вышеперечисленных
пути.
Справочный пакет Java API