Возможный дубликат:
Объекты оболочки Integer имеют одни и те же экземпляры только в пределах значения 127?
Я скопировал следующий фрагмент программы из SCJP Khalid Mughal, но я не могу использовать понять выход.
public class RQ200_60 {
public static void main(String[] args) {
Integer i = -10;
Integer j = -10;
System.out.print(i==j); // output: true -- why true?
System.out.print(i.equals(j)); // output: true
Integer n = 128;
Integer m = 128;
System.out.print(n==m); // output: false
System.out.print(n.equals(m)); // output: true
}
}
Вышеприведенная программа дает вывод true для первого оператора печати, но он должен давать false, потому что это сравнение ссылок с оператором == relational. Но третья печать дает ложь, и я не понимаю эту несогласованность.
Пояснения приветствуются!