Pessoal tem um tópico no livro da Hathy que não entendi, quando li o trecho abaixo tinha certeza que estava errado, mas ao executar exte trecho de código a saida é mesma do livro o que me deixou mais confuso, enfim deixa eu explicar minha duviada quando comparamos i1 com i2 (==) o resultado é que são diferentes, até ai tudo bem pois são objetos diferente s e operador “==” compara referencias, se comparamos com equals() seria iguais pois ai ele compara valores, , porem no trecho B) comparei i2 com i3 com “==” e resultado é que são iguais ao contrario de A, como pode isto?
A)
Integer i1 = 1000;
Integer i2 = 1000;
if(i1 != i2) System.out.println(“different objects”);
if(i1.equals(i2)) System.out.println(“meaningfully equal”);
Produces the output:
different objects
meaningfully equal
B)
Integer i3 = 10;
Integer i4 = 10;
if(i3 == i4) System.out.println(“same object”);
if(i3.equals(i4)) System.out.println(“meaningfully equal”);
This example produces the output:
same object
meaningfully equal