szedłem testu na itester.org i znalazł pytanie, które ja nie rozumiem:Dlaczego domyślnie zmienna typu Integer ma wartość NULL?
public class Runner
{
public static Integer i;
public static void main(String[] args)
{
if (i == 42) {
System.out.printf("wow");
}
}
}
czytałem wcześniej, że zmienna liczba całkowita jest przypisany domyślnie 0
. Dlaczego jest tutaj przypisywany null
?
Ponieważ nie jest to obiekt pierwotny, ale obiekt. Domyślna wartość obiektu jest zerowa. Kiedy robisz 'i == 42', próbuje rozpakować wartość int w' i', ale ponieważ 'i' ma wartość null, dostajesz NPE. –
Uwielbiam Javę - sprawia, że * więc * wiele sensu, że int i Integer to różne typy danych. – Craig