Bom dia senhores,
Estudando para a certificação, me deparei com o seguinte comportamento:
Integer i1 = 127;
Integer i2 = 127;
if (i1 == i2 ) System.out.println("== - i1 e i2");
if (i1 != i2 ) System.out.println("!= - i1 e i2");
if (i1.equals(i2) ) System.out.println("equals - i1 e i2");
Integer i3 = 128;
Integer i4 = 128;
if (i3 == i4 ) System.out.println("== - i3 e i4");
if (i3 != i4 ) System.out.println("!= - i3 e i4");
if (i3.equals(i4) ) System.out.println("equals - i3 e i4");[
A saída foi:
== - i1 e i2
equals - i1 e i2
!= - i3 e i4
equals - i3 e i4
compilei e rodei com java 5.
gostaria de saber porque quando utilizo Integers até 127 (linha 1) tenho um comportamento diferente de quando uso Integers acima de 127(linha 3).
alguém?