ИЗМЕНИТЬ: ОК, ОК, я неправильно понял. Я не сравниваю int с Integer. Должен заметить.
В моей книге SCJP говорится:
Когда == используется для сравнения примитива к обертке, оболочка будет развернуты, и сравнение будет примитив к примитивному.
Итак, вы думаете, что этот код напечатает true
:
Integer i1 = 1; //if this were int it'd be correct and behave as the book says.
Integer i2 = new Integer(1);
System.out.println(i1 == i2);
но он печатает false
.
Кроме того, согласно моей книге, это должно печатать true
:
Integer i1 = 1000; //it does print `true` with i1 = 1000, but not i1 = 1, and one of the answers explained why.
Integer i2 = 1000;
System.out.println(i1 != i2);
Неа. Это false
.
Что дает?