StringBuilder und StringBuffer dienen beide dem selben Zweck, nämlich um lange Strings zusammenzubauen, ohne dass bei jedem Konkatinierungsschritt ein neuer String instanziert werden muss (Vermeidung des new Operators).

Der Unterschied zwischen StringBuffer und StringBuilder ist, dass StringBuilder unsychronisiert ist wohingegen StringBuffer synchronisiert ist. Das heisst, dass StringBuffer selbst sicherstellt, dass niemals ein parallel laufender Thread die Daten im StringBuffer inkonsistent macht. Das erkauft man sich aber mit leichten Performanceeinbußen, sodass es sich lohnt StringBuilder zu verwenden wenn man weiss, dass nur ein Thread auf die StringBufferinstanz zugreifen wird.

Categories: Java

5 Comments

Barsack · April 4, 2013 at 1:07 pm

Vielen Dank, hat mir weitergeholfen!

Daniel Richter · April 22, 2013 at 1:30 pm

Vor einigen Jahren in der Java Zertifizierung hätte ich das noch gewusst. Danke für den Memory Recall 🙂

Marco Pöhler · October 10, 2013 at 4:27 pm

Eigentlich ja Basiswissen – aber ich muss es auch immer wieder googlen. Danke für die Post!

linh · July 27, 2014 at 8:37 am

Der initiale Kapazität auf tatsächliche benötigte Größe sollte festgelegt werden. Denn kann die Größenanpassung des Konstantenpuffers zu Performanceproblemen führen.

David · December 22, 2016 at 4:23 am

Super! Danke für den Beitrag. Wenn ich es jetzt nur mir merken könnte. 😉

Leave a Reply

Your email address will not be published. Required fields are marked *