Skip to main content
Entwickler Themen
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

1.2. Strings

Strings in Java sind unveränderlich (immutable). Das bedeutet, sobald ein String-Objekt erstellt wurde, kann dessen Inhalt nicht mehr verändert werden. Jede Operation, die scheinbar einen String verändert, erzeugt tatsächlich ein neues String-Objekt.

Vergleich von Strings

Strings dürfen in Java nicht mit == oder != verglichen werden, da hierbei nur geprüft wird, ob beide Referenzen auf das gleiche Objekt zeigen. Um die inhaltliche Gleichheit zu prüfen, ist die Methode .equals() zu verwenden:

String a = "Hallo";
String b = new String("Hallo");

// Nicht empfohlen:
if (a == b) { ... }  // Vergleicht Referenzen, nicht Inhalte!

// Empfohlen:
if (a.equals(b)) { ... }  // Vergleicht Inhalte!

String-Literale

String-Literale werden in Java automatisch in einem sogenannten String-Pool gespeichert. Dieser Pool sorgt dafür, dass identische String-Literale nur einmal im Speicher existieren. Dadurch verweisen mehrere Variablen, die dasselbe String-Literal verwenden, auf dasselbe Objekt im Speicher.

Die explizite Verwendung der Methode intern() ist möglich, um dynamisch erzeugte Strings in diesen Pool aufzunehmen. Diese Methode ist allerdings nur in spezifischen Szenarien zur Speicheroptimierung relevant.