タグ

2013年6月25日のブックマーク (1件)

  • J2SE 5.0 Tiger 虎の穴 StringBuilder

    StringBuilder クラスは Tiger で導入されたクラスなのですが、なんと機能は StringBuffer クラスとまったく同じなのです。 それじゃ、なぜ今になって新しいクラスを作ったのでしょうか。 それはスレッドセーフとパフォーマンスに関連します。 StringBuffer クラスのすべてのメソッドは synchronized になっており、同期化されています。このため、複数のスレッドから使用される場合でも、安全に使用することができます。 その一方で同期化にはコストがかかります。簡単にいえばメソッドを synchronized にすると遅くなってしまうのです。 しかし、StringBuffer を使うときに当にスレッドセーフが必要ですか? 私が書いてきたコードには StringBuffer クラスにスレッドセーフが必要だったケースはほとんどありませんでした。それなのにわざわ