Java Reference
In-Depth Information
8.2
Die Klasse StringBuffer
Ein wesentlicher Nachteil der Klasse String besteht darin, dass sie unveränderlich ist.
Dass dies nicht so absolut, wie oft ausgedrückt, zu sehen ist, wissen Sie bereits. Der Wert
eines Strings kann aber nur verändert werden, indem das Objekt komplett neu im Spei-
cher angelegt wird. Insofern handelt es sich dann ja wieder um ein neues Stringobjekt.
Das muss Sie als Programmierer nicht weiter stören, denn den Aufwand müssen nicht
Sie betreiben. Der hohe Aufwand bleibt in Ihrem Quellcode hinter einer einzigen Anwei-
sung verborgen. Der Aufwand ist von der Laufzeitumgebung während des Programm-
ablaufs zu betreiben. Bei vielen solchen Operationen leidet deshalb die Geschwindigkeit
(Performance) eines Programms. Zur Bearbeitung von Zeichenketten, deren Inhalt
ohne großen Aufwand geändert werden kann, stellt Java eine eigene Klasse mit dem
Namen StringBuffer zur Verfügung.
8
StringBuffer und String dienen beide dem Zweck der Speicherung von Zeichenketten.
Entsprechend besteht zwischen beiden eine enge Verwandtschaft. Es ist deshalb wich-
tig, das Augenmerk auf die Unterschiede zwischen den beiden Klassen zu legen, denn
damit wird auch deutlich, wann welche Klasse zum Einsatz kommen sollte.
8.2.1 Erzeugen eines Objekts der Klasse StringBuffer
Im Gegensatz zum String erfordert der StringBuffer beim Erzeugen eines Objekts wie
jede andere Klasse den new -Operator ( Abbildung 8.5 ). Es stehen drei verschiedene Kon-
struktoren zur Auswahl:
StringBuffer()
StringBuffer(int capacity)
StringBuffer(String str)
Der erste Konstruktor erstellt einen leeren StringBuffer , der maximal für 16 Zeichen
Platz bereitstellt. Der zweite Konstruktor erwartet als ganze Zahl die Anzahl der Zeichen,
für die der StringBuffer Platz bereitstellen soll. Der dritte Konstruktor speichert die als
Argument übergebene Zeichenkette und stellt zusätzlich Platz für weitere 16 Zeichen
bereit.
Im Gegensatz zum String , der immer nur so viel Speicherplatz belegt, wie er für die bei
der Initialisierung übergebene Zeichenkette benötigt, stellt der StringBuffer immer
einen Puffer für spätere Verlängerungen der Zeichenketten bereit. Daher erklärt sich
auch der Bezeichner.
Search WWH ::




Custom Search