Usando o operador == em Java para comparar objetos wrapper
Eu estou lendo SCJP Java 6 por Kathy Sierra e Bert Bates e este livro está me confundindo muito. Na página 245 eles afirmam que o seguinte código abaixo.
<code>Integer i1 = 1000; Integer i2 = 1000; if(i1 != i2) System.out.println("different objects"); //Prints output different objects </code>
Então na próxima página eles têm o seguinte código
<code>Integer i3 = 10; Integer i4 = 10; if(i3 == i4) System.out.println("same objects"); //Prints output same objects </code>
Estou tão confuso! Quando eu tento isso por conta própria, parece que você não pode usar o == para comparar da mesma maneira que você usaria o método equals (). Usar o == sempre me dá 'false' mesmo se as variáveis Integer forem definidas com o mesmo valor (ou seja, 10). Estou correcto? Usar o == para comparar o mesmo objeto Integer (com os mesmos valores) sempre resultará em 'false'