Javaでは文字列同士の足し算(”A” + “B”など)という事はせずにStringBufferを使用するのが通常です。さらにStringBufferよりもStringBuilderの方がコストパフォーマンスが良いのでStringBuilderを使用しましょうというのもよく聞く話です。そうなるとStringBuilderだけでStringBufferって何のためにあるの?という疑問が出てきます。このStringBuilderとStringBufferの違いについてまとめておきます。
StringBufferの特徴
- スレッドセーフである。
- StringBuilderよりもコストパフォーマンスが悪い
StringBuilderの特徴
- StringBufferよりもコストパフォーマンスが良い
- ローカル変数で使用する場合のみスレッドセーフとなる
用途としてはローカル変数で使用する場合にはコストパフォーマンスが良くスレードセーフも保証されるので「StringBuilder」を使用し、インスタンス変数で使用する場合はスレッドセーフを確実に保証する為に「StringBuffer」を使用するべきです。