Непростой Garbage Collector

Для меня было открытием, что GC, может плохо чистить память. Раньше я жил по правилу.

GC сделает всю работу с память за меня, я в этом разбираться не должен

Но вот как у меня утекала память: 1) я заполнял статические коллекции, но не чистил их Если добавил static Set или любую коллекцию и не чистить ее, то эти элементы никогда не будут удалены GC, потому что static поля живут вместе с приложением.

2) Если лямбда или анонимный класс ссылается на внешний объект. То GC снова это не почистит.

GC, для меня все равно безусловно хороший инструмент, он очищает неиспользуемые объекты, которые не имеют активных ссылок и запускается он случайно. *Кстати, именно по этому на Java не пишут программы для роботов, которые могут зависнуть в самый неподходящий момент.