yes Java Сборщик мусора обрабатывает циркулярную ссылку!
How?
Существуют специальные объекты, называемые корнями сбора мусора (корни GC).
Простое Java-приложение имеет следующие корни GC:
[/g1]
Чтобы определить какие объекты больше не используются, JVM периодически запускает то, что очень точно называют алгоритмом маркировки и развертки. Он работает следующим образом
Таким образом, если какой-либо объект недоступен из корней GC (даже если он является самореферентным или циклическим), он
Конечно, это может привести к утечке памяти, если программист забывает разыменовать объект.
[/g2]
Источник: Управление памятью Java