bjetos inteiros comparados [duplicado]
Esta pergunta já tem uma resposta aqui:
Como comparar corretamente dois números inteiros em Jav 8 respostasEu tenho o seguinte código
public class Test {
public static void main(String[] args) {
Integer alpha = new Integer(1);
Integer foo = new Integer(1);
if(alpha == foo) {
System.out.println("1. true");
}
if(alpha.equals(foo)) {
System.out.println("2. true");
}
}
}
A saída é a seguinte:
2. true
No entanto, alterar o tipo de umInteger object
paraint
produzirá uma saída diferente, por exemplo:
public class Test {
public static void main(String[] args) {
Integer alpha = new Integer(1);
int foo = 1;
if(alpha == foo) {
System.out.println("1. true");
}
if(alpha.equals(foo)) {
System.out.println("2. true");
}
}
}
A nova saída:
1. true
2. true
Como isso pode ser assim? Por que o primeiro código de exemplo não gera1. true
?