Какое значение по умолчанию у переменной типа boolean в Java?

«Какое значение по умолчанию у переменной типа boolean в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Значение по умолчанию зависит от контекста объявления переменной:

  1. Поля класса (нестатические) и статические переменные: Инициализируются значением false.
  2. Локальные переменные внутри методов: Не имеют значения по умолчанию. Компилятор требует явной инициализации перед использованием, иначе возникает ошибка компиляции.

Пример, демонстрирующий разницу:

public class DefaultValuesExample {
    boolean instanceField;       // Значение по умолчанию: false
    static boolean staticField;  // Значение по умолчанию: false

    public void someMethod() {
        boolean localVariable;   // Не инициализирована
        // System.out.println(localVariable); // ОШИБКА КОМПИЛЯЦИИ: variable might not have been initialized
        localVariable = true;    // Требуется явная инициализация
        System.out.println(localVariable); // OK
    }
}