Ответ
Значение по умолчанию зависит от контекста объявления переменной:
- Поля класса (нестатические) и статические переменные: Инициализируются значением
false. - Локальные переменные внутри методов: Не имеют значения по умолчанию. Компилятор требует явной инициализации перед использованием, иначе возникает ошибка компиляции.
Пример, демонстрирующий разницу:
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
}
}