Я нашел это в книге:Java: Integer Неизменность
объектов Integer являются неизменными объектами. Если существует объект Integer для уже существующего значения, он не создает новый объект .
Я попробовал Exemple:
Integer i = 2147483645;
Integer j=2147483644;
j++;
System.out.println("i == j : "+(i==j));;
System.out.println("i.equals(j) : "+i.equals(j));
Я получаю False
, True
.
Должен ли я получить True
, True
?
Возможный дубликат [это] (http://stackoverflow.com/questions/3637936/java-integer-equals-vs) –
Ваша книга неточна. Авто-бокс (то есть то, что превращает int-литерал в Integer) требуется только для кэширования значений от -128 до +127 (см. [Jls 5.1.7] (http://docs.oracle.com/javase/specs/ jls/se8/html/jls-5.html # jls-5.1.7)) – yshavit
В Java, «AB» == «AB»; но «AB»! = «A» + «B». –