Java Reference
In-Depth Information
Die Lösung besteht darin, dass die Variable a an einer anderen Position im Arbeitsspei-
cher völlig neu angelegt und mit der verlängerten Zeichenkette initialisiert wird. Abbil-
dung 8.4 zeigt, dass die ursprüngliche Variable a zerstört und der Arbeitsspeicher dort
freigegeben wird.
Dieses Verhalten ist deshalb von Bedeutung, weil der Vorgang des Anlegens von Objek-
ten einen durchaus aufwändigen Vorgang darstellt. Bei gelegentlichen Veränderungen
an Strings wird sich das nicht großartig auswirken. Wenn Sie aber Programme schrei-
ben, die in Wiederholungsstrukturen ständig eine große Zahl von Stringinhalten verän-
dern, dann wird das Programm keine Geschwindigkeitsrekorde brechen. Für diesen Fall
stellt Java andere Klassen, wie z. B. StringBuffer , zur Verarbeitung von Zeichenketten
zur Verfügung. Die Klasse String ist zwar die naheliegendste, keinesfalls aber die einzige
Klasse, die für die Zeichenkettenverarbeitung zur Verfügung steht.
8.1.3 Stringlänge bestimmen und Strings vergleichen
Die aktuelle Länge eines Strings können Sie mit der Methode length bestimmen. Die
Schnittstelle lautet:
public int length()
Die Methode erwartet eine leere Parameterliste und liefert als Ergebnis einen Integer -
Wert zurück. Mit der Anweisung
System.out.print(a.length);
können Sie in der Konsole z. B. die aktuelle Länge der Variablen a ausgeben. Beachten Sie
hierbei, dass natürlich auch Leerstellen Zeichen sind und entsprechend mitgezählt wer-
den.
Die Problematik beim Vergleichen von Objekten habe ich bereits ausführlich in
Abschnitt 7.3.2 , »Objekte vergleichen«, angesprochen. Konsequenterweise verfügt die
Klasse String über eine geerbte Methode equals mit folgender Schnittstelle:
public boolean equals(Object anObject)
Die Methode liefert einen Wahrheitswert zurück, der Auskunft über Gleichheit oder
Ungleichheit gibt. Es wird Sie vielleicht verwundern, dass als Parameter nicht String ,
sondern Object verwendet wird. Die Klasse Object ist gewissermaßen der Vorfahre aller
Klassen, die in Java definiert werden. Diese Klasse vererbt einige Methoden an alle Klas-
Search WWH ::




Custom Search