Java 文字列の連結にて+演算子は使わないほうがいいのか?
文字列結合
・文字列を+演算子を使って結合した時
・文字列をStringBuilderクラスを使って結合した時
文字列を+演算子を使って結合した時
String a = "aa"; String b = "bb"; String s = a + b;
Stringクラスは不変クラス*1であるため、"aa"という情報を持ったインスタンスが大きくなって、"aabb"になるわけではない。+演算子が使われた瞬間に、"aa"のインスタンスは破棄され、新たに"aabb"のインスタンスが生成される。
文字列をStringBuilderクラスを使って結合した時
StringBuilder sb = new StringBuilder(); String a = "aa"; String b = "bb"; sb.append(a); sb.append(b); String s = sb.ToString();
StringBuilderクラスは可変クラスで構成されているため、文字列結合する度に新たなインスタンスが生成されるわけではなく、バッファの領域を増やして新たな文字列を追記していく。
何回も文字列結合を行うのであれば、StringBuilderクラスを使った方が良いが、数回の文字列結合であれば、わかりやすい+演算子を使ったほうがいいのかもしれない。