Когда инициализируется object

«Когда инициализируется object» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Объект в Kotlin инициализируется при первом доступе к нему (ленивая инициализация). Это потокобезопасно по умолчанию. Пример:

object Singleton {
    init {
        println("Initialized")
    }
    fun doWork() = println("Working")
}

// При первом вызове:
Singleton.doWork() // Выведет "Initialized", затем "Working"

Если нужна ранняя инициализация (например, в Application), можно использовать @JvmStatic с lateinit. Объекты существуют в единственном экземпляре (синглтон).