LoginSignup
6
16

More than 5 years have passed since last update.

【Java】StringBufferとStringBuilderの違い

Last updated at Posted at 2017-08-28

教科書的な解説

StringBuffer

可変の文字列を扱う。
Stringクラスは、文字列を変更するたびに新しいオブジェクトを生成するが、StringBufferは、生成されたオブジェクトに文字列を追加していく。
つまり、生成されるオブジェクトは1つだけになる。

StringBuilder

可変の文字列を扱う。
JDK1.5でリリースされたクラスで、StringBufferと同じメソッドを持っているし、使い方もStringBufferと同じ。
StringBufferとの違いは「スレッドセーフではない(同期化しない)」こと。
同期化しないので、処理が早い

どっちを使えばいい?

新人研修の場合

研修の課題で処理速度が求められることはまずないので、どっちを使ってもいいと思う。
意味が分からなくてもいいから、違いを聞かれた時にパッと答えられれば(新人:beginner:なので)それでいい・・・と私は思ってる。
どちらかというと、StringBuffer/StringBuilderが使えるようになってほしい:star:

業務での場合

既存プログラムの改修であれば、すでに多用されている方を使った方がいい。
お作法的にNGだったとしても、その後のメンテナンス性を考慮すると、あえて既存を踏襲した方が良いことの方が多いので。
1から新規で作るなら、(個人的には)速度性を重視してStringBuilderを使う。

6
16
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
16