Verwenden des Operators == in Java, um Wrapperobjekte zu vergleichen

Ich lese SCJP Java 6 von Kathy Sierra und Bert Bates und dieses Buch verwirrt mich so sehr. Auf Seite 245 wird der folgende Code angegeben.

<code>Integer i1 = 1000;
Integer i2 = 1000;
if(i1 != i2)
System.out.println("different objects");

//Prints output
different objects
</code>

Dann haben sie auf der nächsten Seite den folgenden Code

<code>Integer i3 = 10;
Integer i4 = 10;
if(i3 == i4)
System.out.println("same objects");

//Prints output
same objects
</code>

Ich bin so verwirrt! Wenn ich das alleine ausprobiere, scheint es, dass Sie das == nicht so vergleichen können, wie Sie es mit der equals () -Methode tun würden. Die Verwendung von == gibt mir immer 'false', auch wenn die Integer-Variablen auf den gleichen Wert gesetzt sind (d. H. 10). Hab ich recht? Die Verwendung von == zum Vergleichen desselben Integer-Objekts (mit denselben Werten) führt immer zu 'false'.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage