Собираются ли нестатические объекты внутреннего класса в мусор после того, как на них больше не ссылаются?

У меня есть единственный компонент Spring, подобный следующему:

public class MyServiceImpl {
    private MyDAO myDAO;

    public class MyInnerClass implements SomeInterface<MyInnerClass> {

        @Override
        public MyInnerClass loadFreshObject(final String key) {
            return myDAO.load(key);
        }
    }

}

Экземпляры MyInnerClass создаются в коде вне компонента Spring, но никаких ссылок на эти экземпляры не сохраняется.

Предполагая, что у меня нет контроля над использованием этих общедоступных нестатических внутренних классов (я знаю, что в идеале они должны быть частными и статическими, чтобы избежать утечки ссылки на 'this'), будут ли созданные экземпляры 'MyInnerClass' правильно собран мусор?

Я провел свои собственные тесты, переопределив finalize () , и оказалось, что экземпляры правильно собирают мусор, я просто надеялся получить разъяснения по этому поводу.

Спасибо

15
задан Android Killer 24 February 2012 в 10:31
поделиться