Heim >Java >javaLernprogramm >.equals() vs. == in Java: Wann sollten Sie jedes verwenden?
.equals vs. ==: Ein tieferer Einblick
In Java ist der Unterschied zwischen „.equals“ und „==" oft missverstanden. Lassen Sie uns den Unterschied zwischen diesen Operatoren untersuchen und verstehen, wann jeder einzelne verwendet werden sollte.
Die Verwendung von „=="
"==" ist der Gleichheitsoperator und er vergleicht die Referenzen zweier Objekte. Bei primitiven Datentypen (z. B. int, double) prüft „==“, ob die Werte gleich sind. Bei nicht-primitiven Typen (z. B. Objekten) vergleicht „==" jedoch, ob beide Objekte auf denselben Speicherort verweisen.
Verwendung von „.equals“
".equals" ist eine in der Klasse „Object“ definierte Methode und bietet eine allgemeine Möglichkeit, den Inhalt zweier Objekte zu vergleichen. Standardmäßig vergleicht „.equals“ die Werte der Objekte und ermöglicht so benutzerdefinierte Implementierungen in Unterklassen.
Warum „.equals“ besser ist
Während „== " reicht für primitive Datentypen aus, es kann zu Missverständnissen im Umgang mit Objekten führen. Zum Beispiel:
Code:
Integer a = new Integer(10); Integer b = new Integer(10); if (a == b) { System.out.println("They are the same"); } if (a.equals(b)) { System.out.println("They are equal"); }
Ausgabe:
They are not the same They are equal
In diesem Beispiel „== " gibt „false“ zurück, da „a“ und „b“ unterschiedliche Objekte mit unterschiedlichen Speicherorten sind. Allerdings gibt „.equals“ „true“ zurück, da sie denselben Wert darstellen.
Best Practices
Als allgemeine Regel gilt, dass es immer besser ist, „.equals“ zu verwenden " für Objekte, auch für primitive Datentypen. Dies stellt ein konsistentes Verhalten sicher und vermeidet potenzielle Fehler. Hier einige Richtlinien:
Das obige ist der detaillierte Inhalt von.equals() vs. == in Java: Wann sollten Sie jedes verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!