当たり前の様にStringBuffer sqlStatement = new StringBuffer();と書いたところ、NetBeans IDE で “StringBuffer”のところに下線が引かれていました。横のヒントにカーソルを当てたところ「StringBuffer は StringBuilder に置換できます」というメッセージが表示されました。

古い知識ではダメですね。StringBuffer の選択は StringBuilder の存在を知らなかったためですが、この StringBuilder 少し前の Java 1.5(Tiger) から導入されたそうです。→「文字列操作 スレッドセーフ vs パフォーマンス StringBuilder

StringBuffer も StringBuilder も使う上では全く同じ。違いはスレッドセーフであるか否か(StringBufferがスレッドセーフ)で、StringBuilderはスレッドセーフでないが故に高速だということ。StringBufferを複数スレッドから使うということはあまりなく、たいていのStringBufferはStringBuilderで置き換えられるハズだそう。

今後は、StringBuilderを検討のデフォルトとして、スレッドセーフが外せない場合はStringBufferにするというのが正しいアプローチなのではないかと。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です