zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite
String umgedreht = letzter + erster;

Antwort:

Nein. Die Anweisung verwendet die Daten in letzter und in erster um ein neues Objekt zu konstruieren. Die bestehenden Objekte werden nicht geändert.

Strings sind für immer

Java wurde konzipiert, nachdem Programmierer 15 Jahre Erfahrung mit objektorientierter Programmierung hatten. Eine der in diesen Jahren gelernten Lektionen war, dass es sicherer ist ein neues Objekt zu konstruieren als ein Bestehendes zu odifizieren.

(Der Grund dafür ist, dass das Programm an vielen Stellen auf das bestehende Objekt verweisen könnte und, dass es schwer ist sicher zu sein, dass sie alle mit der Änderung umgehen können.)

Objekte mancher Java Klassen können nach der Konstruktion nicht geändert werden. Die Klasse String ist eine davon.

Stringobjekte sind unveränderbar. Das bedeutet, dass sie nach der Konstruktion nicht mehr geändert werden können.

Manchmal werden unveränderbare Objekte auch write-once Objekte genannt. Sobald ein Stringobjekt konstruiert wurde, werden die Zeichen, die es enthält immer dieselben bleiben. Keine ihrer Methoden wird diese Zeichen ändern, und es gibt keine andere Möglichkeit sie zu ändern. Die Zeichen können für verschiedene Zwecke verwendet werden (so wie neue Stringobjekte daraus zu erzeugen) und sie können untersucht werden. Aber sie können niemals geändert werden.

bug Alarm: Verwechslungsgefahr!! Das ist die Stelle an der es wichtig ist zwischen Referenzvariablen und deren Objekten zu unterscheiden. Eine Referenzvariable, die auf einen String verweist, kann geändert werden (sie kann geändert werden, um auf ein anderes Stringobjekt zu verweisen). Das Stringobjekt, auf das sie verweist, kann NICHT geändert werden.

FRAGE 12:

Prüfen Sie den folgenden Code:

String ring   = "Einen Ring, sie alle zu knechten, ";
String finden = "einen Ring, sie alle zu finden.";

ring = ring + finden;

Verletzt die letzte Anweisung die Regel, dass Stringobjekte unveränderbar sind?