Где разрешена инициализация статических и нестатических полей?

В Java инициализация статических и нестатических полей разрешена в разных местах:

Короткий ответ

Что ответить на собеседовании

В Java инициализация статических и нестатических полей разрешена в разных местах:

Подробный разбор

Ответ с пояснениями

В Java инициализация статических и нестатических полей разрешена в разных местах:

  • Статические поля (static):

    • Могут быть инициализированы прямо при объявлении в классе.
    • Также могут быть инициализированы в статических блоках инициализации (static { ... }).
  • Нестатические поля (instance):

    • Могут быть инициализированы при объявлении в классе.
    • Могут быть инициализированы в конструкторе класса.
    • Могут быть инициализированы в нестатических блоках инициализации ({ ... }).

Пример:

public class Example {
    static int staticField = 10; // инициализация при объявлении
    int instanceField = 5;       // инициализация при объявлении

    static {
        staticField = 20;        // статический блок инициализации
    }

    {
        instanceField = 15;      // нестатический блок инициализации
    }

    public Example() {
        instanceField = 25;      // инициализация в конструкторе
    }
}

Таким образом, статические поля инициализируются один раз при загрузке класса, а нестатические — при создании каждого объекта.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее