Я понятия не имею, почему эти строки кода возвращают разные значения:
System.out.println(Integer.valueOf("127")==Integer.valueOf("127"));
System.out.println(Integer.valueOf("128")==Integer.valueOf("128"));
System.out.println(Integer.parseInt("128")==Integer.valueOf("128"));
Вывод:
true
false
true
Почему первый возвращает true
, а второй возвращает false
? Есть ли что-то другое, чего я не знаю между 127
и 128
? (Конечно, я знаю, что 127
< 128
.)
Кроме того, почему третий возвращает true
?
Я прочитал ответ этого вопроса, но я до сих пор не понял, как он может вернуть true
, и почему код во второй строке возвращает false
.