Есть Singleton-класс, который отвечает за получение координат. В данном классе есть методы стартующие и отключающие подписку на изменение координат. Может ли сборщик мусора удалить из памяти Singleton-класс из-за того, что на него нет ссылок в других активных классах?
да может если на класс или его инстанс нет внешних ссылок тк класс это тоже объект
проблема решается созданием внешней ссылки или параметром jvm -Xnoclassgc
Спасибо, ответ исчерпывающий. Я предполагал такое поведение и делал внешнюю ссылку. Потом с учётом существующих ответов удалил такую ссылку. Придётся добавлять заново )))
Я не знаю способов реализации Singleton в Яве, при которых так или иначе не используется статическое поле с экземпляром класса (во всяком случае, адекватных способов). А статическое поле - это всегда корень для GC, будь оно приватное или нет. Поэтому ответ: нет, не может.
Да, с Блохом согласен. Прекрасный синтаксический сахар, у котрого есть один минус (решается, при необходимости, делегатами) ― неконфигурируемость в рантайме...
Тогда, вот вам еще вариант: интерфейс, реализованный анонимным классом. Вполне себе синглтон. :)