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.

Stringaddition: StringBuffer, statt Konkatenierung

Ein Gedanke zu „Stringaddition: StringBuffer, statt Konkatenierung

  • 12. Dezember 2007 um 16:12
    Permalink

    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.

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Wir verwenden Cookies, um Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Außerdem geben wir Informationen zu Ihrer Nutzung unserer Website an soziale Medien und für Analysen weiter. Durch die Benutzung unserer Webseite stimmen Sie dem zu. Weitere Informationen

Wir verwenden Plugins, mit denen Sie unsere Inhalte in sozialen Medien wie Facebook, Twitter und Google+ teilen können. Bereits durch den Aufruf von Seiten werden Informationen an diese sozialen Medien weitergegeben. Außerdem verwenden wir Google Analytics, um die Nutzung unserer Seite analysieren zu können.

Schließen