Я читаю SCJP Java 6 от Kathy Sierra и Bert Bates, и эта книга меня так запутывает. На стр. 245 указано, что следующий код ниже.
Integer i1 = 1000;
Integer i2 = 1000;
if(i1 != i2)
System.out.println("different objects");
//Prints output
different objects
Затем на самой следующей странице есть следующий код
Integer i3 = 10;
Integer i4 = 10;
if(i3 == i4)
System.out.println("same objects");
//Prints output
same objects
Я так смущен! Когда я пытаюсь это сделать самостоятельно, кажется, что вы не можете использовать == для сравнения так же, как вы бы использовали метод equals(). Использование == всегда дает мне "false", даже если переменные Integer установлены на одно значение (т.е. 10). Я прав? Использование == для сравнения одного и того же объекта Integer (с одинаковыми значениями) всегда приведет к "false"