Heim  >  Artikel  >  Java  >  Der Unterschied zwischen StringBuffer und StringBuilder in Java

Der Unterschied zwischen StringBuffer und StringBuilder in Java

高洛峰
高洛峰Original
2017-01-22 11:44:221534Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn