Есть ли в Java аналог init из Kotlin

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

Ответ

В Java нет точного аналога init-блока из Kotlin, но можно использовать:

  1. Инициализационные блоки (instance initializer) – выполняются при создании объекта до конструктора:
class Example {
    {
        // код инициализации
    }
}
  1. Конструкторы – основной способ инициализации в Java.

  2. Статические блоки инициализации (аналог Kotlin init для статических полей):

static {
    // статическая инициализация
}

Основное отличие: в Kotlin init выполняется после первичного конструктора, но до вторичных, а в Java инициализационные блоки выполняются в порядке их объявления перед конструктором.