Инициализационный блок в Java — это блок кода, который выполняется при создании объекта. Существует два типа:
- Статический инициализационный блок:
- Объявляется со словом
static {}.
- Выполняется один раз при загрузке класса в память JVM, до создания любых объектов этого класса.
- Используется для инициализации статических переменных или выполнения других статических операций.
java
- Нестатический (инстансный) инициализационный блок:
- Объявляется без ключевого слова
static {}.
- Выполняется каждый раз при создании нового экземпляра класса, после выделения памяти, но до вызова конструктора.
- Используется для инициализации переменных экземпляра или выполнения операций, специфичных для каждого объекта.
java
Порядок выполнения:
- Статические инициализационные блоки (в порядке их объявления).
- Нестатические инициализационные блоки (в порядке их объявления).
- Конструкторы.
Пример:
java
Вывод:
plaintext
Основные применения:
- Статические блоки: Инициализация статических полей, загрузка ресурсов при запуске класса.
- Нестатические блоки: Выполнение общей логики инициализации перед любым конструктором (например, для установки значений по умолчанию, которые могут быть изменены в конструкторах).