Ответ
Объекты Kotlin (object) инициализируются лениво (lazy) при первом доступе. Это происходит:
- При первом обращении к любому члену объекта (методу или свойству).
- Потокобезопасно – гарантируется единственная инициализация даже в многопоточной среде.
Пример:
object Singleton {
init { println("Initialized") }
fun doWork() = println("Working")
}
// При первом вызове:
Singleton.doWork() // Выведет "Initialized", затем "Working"
Если объект объявлен внутри класса (companion object), инициализация происходит при первом доступе к нему или к внешнему классу.