Alle Objekte sind garantiert mit einer .equals()
Methode, da Object eine Methode enthält, .equals()
die einen booleschen Wert zurückgibt. Es ist die Aufgabe der Unterklasse, diese Methode zu überschreiben, wenn eine weitere Definition erforderlich ist. Ohne sie (d. h. mit ==
) werden nur Speicheradressen zwischen zwei Objekten auf Gleichheit geprüft. String setzt dies außer Kraft .equals()
Methode und gibt anstelle der Speicheradresse den Vergleich von Zeichenketten auf Zeichenebene für die Gleichheit zurück.
Ein wichtiger Hinweis ist, dass Zeichenketten in einem Klumpenpool gespeichert werden, d. h., wenn eine Zeichenkette einmal erstellt wurde, wird sie in einem Programm für immer an derselben Adresse gespeichert. Zeichenketten ändern sich nicht, sie sind unveränderlich. Aus diesem Grund ist es keine gute Idee, die reguläre String-Verkettung zu verwenden, wenn Sie eine große Menge an Strings zu verarbeiten haben. Stattdessen sollten Sie die StringBuilder
Unterricht angeboten. Denken Sie daran, dass sich die Zeiger auf diese Zeichenkette ändern können, und wenn Sie wissen möchten, ob zwei Zeiger identisch sind ==
wäre ein guter Weg. Die Saiten selbst tun das nicht.