Stringaddition: StringBuffer, statt Konkatenierung

Wer in Java Strings verknüpfen/verketten möchte und
das in grösserern Zahl, z.B. in einer Schleife, sollte
tunlichst vermeiden diese Strings per Addition zu verbinden:

String a = “Ma”;
String b = “i”;
String c = “k”;
String d = a + b + c;
//d = “Maik”

Erheblich performanter(Zeit und Speicher) ist es die Strings
mit einem StringBuffer zu verketten und diesen nachher auszulesen:

StringBuffer a = new StringBuffer(“Ma”);
a.append(“i”);
a.append(“k”);
String d = a.toString();
//d = “Maik”

In diesem kleinem Beispiel ist der Unterschied kaum messbar, aber
wenn mehrere hundert Strings verkettet werden müssen ist der
zweite Weg um ein Vielfaches schneller.

Im ersten Fall werden laufend neue Objekte erzeugt, was im zweiten Fall
nicht nötig ist, da immer das gleiche Objekt verwendet wird.

Ein Gedanke zu „Stringaddition: StringBuffer, statt Konkatenierung

  1. Holger Schlegel

    Ab Java5 (Jdk 1.5.0) sollte meist besser die Klasse StringBuilder verwendet werden. Diese ist API kompatibel zum StringBuffer aber schneller da sie nicht synchronisiert (aka Thread-Safe) ist.

Die Kommentare sind geschlossen.