String reversed = last + first;
Nein. Sie verwendet die Daten
in last und in first
um ein neues Objekt zu konstruieren.
Die anderen Objekte werden nicht geändert.
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 modifizieren. (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 erzeugen) und sie können untersucht werden. Aber sie können niemals geändert werden.
Alarm: Verwechslungsgefahr!! Dies 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 String-Objekt, auf das sie verweist,
kann NICHT geändert werden.