dislike 302 Опубликовано 21 октября, 2014 (изменено) Вопрос к гуру кодинга. Что эффективней использовать ? private static final SomeClass _instance = new SomeClass(); public static SomeClass getInstance() { return _instance; } Или же сам паттерн SingletonHolder private static class SingletonHolder { protected static final SomeClass _instance = new SomeClass(); } public static final SomeClass getInstance() { return SingletonHolder._instance; } Из-за отсутствия некоторых знаний я не могу понять, что эффективней работает, что где лучше использовать. Как я понимаю, оба варианта создают один экземпляр класса, но что будет потом удалено сборщиком мусора, а что нет ? Изменено 21 октября, 2014 пользователем dislike Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 21 октября, 2014 Не реклама http://habrahabr.ru/post/129494/ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dislike 302 Опубликовано 21 октября, 2014 (изменено) Не реклама http://habrahabr.ru/post/129494/ Это я читал, но наверное я не до конца понимаю, что делает паттерн. Он лениво инициализирует экземпляр нужного класса, причем единожды, но потом он будет удален сборщиком мусора или нет ? Изменено 21 октября, 2014 пользователем dislike Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
KillerProMW 84 Опубликовано 21 октября, 2014 Это я читал, но наверное я не до конца понимаю, что делает паттерн. Он лениво инициализирует экземпляр нужного класса, причем единожды, но потом он будет удален сборщиком мусора или нет ? нет не будет Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dislike 302 Опубликовано 21 октября, 2014 нет не будет Почему ? А в первом варианте ? Через профилировщик я не смог найти ответ на вопрос. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
LifeGame32 312 Опубликовано 21 октября, 2014 Почему ? А в первом варианте ? Через профилировщик я не смог найти ответ на вопрос. зачем забивать голову или спутник летит на марс? Сборщик мусора удаляет объект при отсутствии ссылки на него. Если класс статический не нужно создавать объект этого класса следовательно никуда он не исчезнет после загрузки в jvm. если долетит значит я прав Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dislike 302 Опубликовано 21 октября, 2014 (изменено) зачем забивать голову или спутник летит на марс? Сборщик мусора удаляет объект при отсутствии ссылки на него. Если класс статический не нужно создавать объект этого класса следовательно никуда он не исчезнет после загрузки в jvm. если долетит значит я прав Спс за разъяснение, просто плохо я для себя уяснил что делает ключевое слово static. Тогда получается лучше использовать паттерн. Изменено 21 октября, 2014 пользователем dislike Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты