2015-09-02 4 views
0

Если один экземпляр класса создается с использованием шаблона singleton, если он не ссылается в течение длительного времени, если GC обнаружит нерасширенное дерево, чей лист является экземпляром Singleton, будет ли это сбор мусора?Когда объект класса Singleton собирает мусор?

+0

На каком языке вы работаете? – Bergi

ответ

1

Ну, singleton pattern реализуется путем определения частного статического поля, частного конструктора и статического метода, который возвращает поле. Итак, вопрос сводится к следующему: статическое поле собрано в мусор?

Ответ: нет, по крайней мере, в соответствии с этим SO ответ: Do static members ever get garbage collected?

Таким образом, даже если нет никаких других ссылок на статическое поле не будет GC'ed.

+0

Как насчет того, когда Singleton реализован с использованием Enum? –

+0

Посмотрите, что в исходном вопросе, если у нас есть статическое поле в классе, ссылающемся на объект, и мы устанавливаем его в null, тогда объект, на который он ссылается, может быть GC'ed, но при этом мы разбиваем одноэлементный шаблон. – user244255

Смежные вопросы