ホームページ  >  記事  >  Java  >  Java の StringBuffer と StringBuilder の違い

Java の StringBuffer と StringBuilder の違い

高洛峰
高洛峰オリジナル
2017-01-22 11:44:221534ブラウズ

以前 Java を使用したとき、長い文字列を結合するために使用される StringBuffer というクラスがあることを知りました。 C# に切り替えた後は、StringBuilder という同様の機能を備えたクラスもあり、略称は sb なので覚えやすいです。

その後、Java に戻ったときに、Java にも StringBuilder があることがわかり、なぜ StringBuffer の後に StringBuilder が起動されたのかに興味がありました。

Java の StringBuilder (C# など) はスレッド セーフではないことが判明しましたが、以前の StringBuffer には特定のスレッド セーフ プロパティがありました。もちろん、StringBuilder は主に、マルチスレッド状況で使用する必要がないという理由で導入されました。

StringBuilder (または StringBuffer) の一般的な使用例は次のとおりです:

public String toString() {
 return new StringBuilder()
  .append("Name: " + name)
  .append("Foo: " + foo)
  .append("Bar: " + bar)
  .toString();
}

この場合、StringBuilder はクラス メンバーではなく、単なるローカル変数であり、マルチスレッドの問題はまったくありません。

つまり、StringBuilder の導入によりパフォーマンスが大幅に向上し、セキュリティ上の問題はまったくありません...

Java の StringBuffer と StringBuilder の違いに関連するその他の記事については、PHP 中国語に注意してください。 Webサイト!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。