Значения по умолчанию и инициализация в Java

На основании моегоссылка, примитивные типы имеют значения по умолчанию, а объекты имеют значение null. Я проверил кусок кода.

public class Main {
    public static void main(String[] args) {
        int a;
        System.out.println(a);
    }
}

ЛинияSystem.out.println(a); будет ошибка, указывающая на переменнуюa это говоритvariable a might not have been initialized тогда как в данной ссылке,integer буду иметь0 в качестве значения по умолчанию. Тем не менее, с приведенным ниже кодом, он будет фактически печатать.0

public class Main {
    static int a;
    public static void main(String[] args) {
        System.out.println(a);
    }
}

Что может пойти не так с первым кодом? Ли класспример переменная ведет себя иначе, чем локальные переменные?

Ответы на вопрос(8)

Ваш ответ на вопрос