Значения по умолчанию и инициализация в 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);
}
}
Что может пойти не так с первым кодом? Ли класспример переменная ведет себя иначе, чем локальные переменные?