Als ich früher Java verwendet habe, wusste ich, dass es eine Klasse namens StringBuffer gibt, die zum Spleißen längerer Zeichenfolgen verwendet wird. Nach dem Wechsel zu C# gibt es auch eine Klasse mit ähnlichen Funktionen namens StringBuilder. Die Abkürzung ist sb, was sehr leicht zu merken ist.
Als ich später zurück zu Java wechselte, stellte ich fest, dass Java auch StringBuilder hatte, also war ich neugierig, warum StringBuilder nach StringBuffer eingeführt wurde.
Es stellt sich heraus, dass Javas StringBuilder (wie C#) nicht threadsicher ist, der frühere StringBuffer jedoch über bestimmte Thread-Sicherheitseigenschaften verfügt. Natürlich wurde StringBuilder hauptsächlich deshalb eingeführt, weil er nicht in Multithread-Situationen verwendet werden muss.
Häufige Anwendungsfälle für StringBuilder (oder StringBuffer) sind:
public String toString() { return new StringBuilder() .append("Name: " + name) .append("Foo: " + foo) .append("Bar: " + bar) .toString(); }
In diesem Fall ist StringBuilder kein Klassenmitglied, sondern nur eine lokale Variable Von Multithreading ist überhaupt keine Rede.
Infolgedessen hat die Einführung von StringBuilder zu einer enormen Leistungsverbesserung geführt, und es gibt überhaupt keine Sicherheitsprobleme...
Weitere Artikel zum Unterschied zwischen StringBuffer und StringBuilder Achten Sie in Java bitte auf die chinesische PHP-Website!