Usando el operador == en Java para comparar objetos de envoltura
Estoy leyendo SCJP Java 6 de Kathy Sierra y Bert Bates y este libro me está confundiendo mucho. En la página 245 dicen que el siguiente código a continuación.
<code>Integer i1 = 1000; Integer i2 = 1000; if(i1 != i2) System.out.println("different objects"); //Prints output different objects </code>
Luego en la página siguiente tienen el siguiente código
<code>Integer i3 = 10; Integer i4 = 10; if(i3 == i4) System.out.println("same objects"); //Prints output same objects </code>
¡Estoy tan confundida! Cuando pruebo esto por mi cuenta, parece que no puedes usar el == para comparar de la misma manera que usarías el método equals (). El uso de == siempre me da 'falso' incluso si las variables enteras están configuradas en el mismo valor (es decir, 10). ¿Estoy en lo correcto? Usar el == para comparar el mismo objeto Integer (con los mismos valores) siempre resultará en 'falso'