Инициализация переменных по умолчанию

Инициализация переменных по умолчанию

Поля, принадлежащие классу/объекту, по умолчанию инициализируются как 0 (ноль) для примитивных типов, и как null для ссылочных типов. Локальные переменные методов - нет. Если их не инициализировать явно, они так и останутся неинициализированными.


class A {

    static int i;
    String s;

    static void a() {
        int i;
        String s;
        int j = i + 5; // ошибка компиляции: переменная должна быть проинициализирована
        String s2 = s + "some word"; // ошибка компиляции: переменная должна быть проинициализирована 
    }
    
    public static void main(String[] args) {
        A a = new A();
        System.out.println(A.i); // 0
        System.out.println(a.s); // null
    }
}
Основы Java