я проходил тест на itester.org и нашел вопрос, который я не понимаю:Почему переменная Integer по умолчанию имеет значение null?
public class Runner
{
public static Integer i;
public static void main(String[] args)
{
if (i == 42) {
System.out.printf("wow");
}
}
}
Я прочитал до того, что целочисленной переменной присваивается по умолчанию 0
. Почему здесь назначается null
?
Потому что это не примитив, а объект. Значение по умолчанию для объекта равно null. Когда вы делаете 'i == 42', он пытается удалить значение int в' i', но поскольку 'i' равно null, вы получаете NPE. –
Gotta love Java - он делает * так * много смысла, что int и Integer - разные типы данных. – Craig