Wenn die equals()
Methode ist in der java.lang.Object
Klasse, und es wird erwartet, dass sie die Gleichwertigkeit des Zustands der Objekte prüft! Das heißt, der Inhalt der Objekte. Während die ==
Operator soll prüfen, ob die tatsächlichen Objektinstanzen gleich sind oder nicht.
Beispiel
Betrachten Sie zwei verschiedene Bezugsgrößen, str1
y str2
:
str1 = new String("abc");
str2 = new String("abc");
Wenn Sie die equals()
System.out.println((str1.equals(str2))?"TRUE":"FALSE");
Sie erhalten die folgende Ausgabe TRUE
wenn Sie ==
.
System.out.println((str1==str2) ? "TRUE" : "FALSE");
Jetzt erhalten Sie die FALSE
als Ausgabe, da sowohl str1
y str2
auf zwei verschiedene Objekte verweisen, obwohl beide denselben Zeichenfolgeninhalt haben. Der Grund dafür ist new String()
wird jedes Mal ein neues Objekt erstellt.