Выбор ответа Senior Классы, data и sealed обновлено
Когда создаётся object-синглтон
Вопрос
Когда инициализируется object Analytics { ... } на JVM?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Лениво, при первом обращении, потокобезопасно. object компилируется в класс со статическим полем INSTANCE, которое заполняется при инициализации класса JVM.
Варианты ответа
- При старте приложения, вместе со всеми классами модуля
- При каждом обращении создаётся новый экземпляр
- Только после явного вызова
Analytics.init() - Лениво, при первом обращении, потокобезопасноправильный ответ
Разбор
object компилируется в класс со статическим полем INSTANCE, которое заполняется при инициализации класса JVM. Класс инициализируется при первом обращении, и JVM гарантирует, что это произойдёт один раз даже при гонке потоков. Поэтому синглтон ленивый и потокобезопасный без synchronized. Явного init() не нужно.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.