Я понятия не имею, почему эти строки кода возвращают разные значения:
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.