Java: Unterschied zwischen == und .equals()
Frage von Gast | 03.07.2016 um 04:52
In Java scheint man einen String auf zwei verschiedene Arten vergleichen zu können. Einmal mit == und einmal mit .equals().
Beide Möglichkeiten ergeben bei mir in einem Test das gleiche Ergebnis (TRUE falls der String identisch ist, FALSE falls nicht).
Wieso gibt es also zwei Methoden dafür? Oder gibt es tatsächlich einen Unterschied und Situationen wo man die eine Möglichkeit der anderen vorziehen sollte?
Ähnliche Themen
Java: String Vergleich - Equals ohne Beachtung der Groß- und Kleinschreibung (case insensitive equals)
Info | 0 Kommentare
Java: Größer/Kleiner-Vergleich von Strings - The operator > is undefined for the argument type(s) java.lang.String
Frage | 1 Antwort
JavaScript: String Vergleich unabhängig von Groß/Kleinschreibung
Frage | 1 Antwort
Android Programmierung: Daten per HTTP POST Request senden
Tutorial | 0 Kommentare
Java: Split mit Punkt str.split(".") funktioniert nicht
Frage | 1 Antwort
Java: Leere Felder in Split-Array behalten
Tipp | 1 Kommentar
Android Programmierung: Response von HTTP POST Request empfangen
Tutorial | 3 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Ein Vergleich mit == und mit .equals() führt nur dann zu dem selben Ergebnis, wenn nicht nur der Inhalt sondern auch die Referenz der beiden verglichenen Objekte identisch ist.
Wenn du zum Beispiel zwei String-Variablen hast, die zwar denselben Inhalt haben, aber verschiedene Referenzen, ergibt ein Vergleich mit == trotzdem false:
Die Variablen a und b sind unabhängige Objekte und haben daher auch unterschiedliche Referenzen, obwohl deren Inhalt identisch ist. Daher führt der Vergleich a == b zu FALSE.
Wollen wir den Inhalt vergleichen, benutzen wir .equals(). Dies ergibt TRUE, da beide Strings den Wert "abc" haben.
Der String c zeigt auf dieselbe Referenz wie String a, daher ergibt sowohl ein Vergleich mit == als auch mit .equals() TRUE.
Letztes Update am 27.09.2020 | Erstellt am 05.07.2016