Может ли быть 2 экземпляра object в Kotlin

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

Ответ

Нет, в Kotlin object реализует паттерн Singleton - существует только один экземпляр на весь runtime. При первом обращении к объекту он создается и далее используется этот же экземпляр.

Пример:

object Singleton {
    val value = "Hello"
}

// Все обращения получат один и тот же экземпляр
val a = Singleton
val b = Singleton
println(a === b) // true

Это гарантируется языком - повторная инициализация невозможна. Для многопоточного доступа инициализация также потокобезопасна.