NetBeansがStringBuilderの存在を教えてくれた。
当たり前の様に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にするというのが正しいアプローチなのではないかと。