Vergleichen von Integer-Objekten [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Wie werden zwei Ganzzahlen in Java richtig verglichen? 8 answersIch habe den folgenden Code:
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");
}
}
}
Die Ausgabe ist wie folgt:
2. true
Jedoch den Typ eines @ ändeInteger object
zuint
erzeugt eine andere Ausgabe, zum Beispiel:
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");
}
}
}
Die neue Ausgabe:
1. true
2. true
Wie kann das so sein? Warum gibt der erste Beispielcode nicht @ au1. true
?