Warum funktioniert der Stringvergleich mit == manchmal nicht?

Den Inhalt von Objekten, wie z.B. Strings vergleicht man mit der Methode equals().

String s = "Hello World";
String s1 = "Hello World";
System.out.println(s.equals(s1)); // ergibt true

Vergleicht man Objekte mit ==, wird ein Vergleich der Referenzen durchgeführt. Das heißt, es wird überprüft, ob beide Referenzen auf dasselbe Objekt zeigen.

Beim Vergleich von Strings mit dem Operator == kann es zu überraschenden Ergebnissen kommen.

Ein Beispiel dazu findest du im Artikel “Wie vergleiche ich int und wie vergleiche ich Strings korrekt?” in unserer FAQ.