Avatar ·

Unterschied zwischen == und === in Java

Hallo zusammen! Ich komme mit den Vergleichsoperatoren in Java nicht klar. Ich weiß, dass es in JavaScript einen strikten Vergleich mit === gibt, aber in Java scheint es diesen Operator nicht zu geben. Wenn ich versuche === zu schreiben, gibt der Compiler einen Fehler aus.

Ich habe versucht == zum Vergleichen von Strings zu verwenden, aber ich bekomme unerwartete Ergebnisse. Zum Beispiel dieser Code:

String a = new String("test");\nString b = new String("test");\nSystem.out.println(a == b); // false\nSystem.out.println(a.equals(b)); // true

Warum gibt == false zurück, wenn die Strings gleich sind? Ich habe erwartet, dass == den Inhalt vergleicht, wie in JavaScript. Ich habe die Dokumentation gelesen – in Java vergleicht == Objektreferenzen.