Java では、文字列連結にはを使用するのが一般的に望ましいとされていますStringBuilder
。これは常に当てはまるのでしょうか?
私が言いたいのは、StringBuilder
オブジェクトを作成し、メソッドを呼び出してappend()
、最終的にtoString()
既存の文字列を 2 つの文字列の演算子で連結するよりもオーバーヘッドが小さいのか+
、それとも 2 つを超える文字列の場合にのみ推奨されるのかということです。
そのようなしきい値がある場合、それは何に依存するのでしょうか (おそらく文字列の長さですが、どのような方法で)?
そして最後に、 2 つ、3 つ、または 4 つの文字列のような小さいケースでは、+
連結の読みやすさと簡潔さをパフォーマンスと交換しますか?StringBuilder
通常の連結に明示的に使用することは、StringBuilder
廃止されていると言われています。廃止されたJava最適化のヒントだけでなくジャワの都市伝説。
ベストアンサー1
ループ内で文字列連結を使用する場合、次のようになります。
String s = "";
for (int i = 0; i < 100; i++) {
s += ", " + i;
}
より高速でメモリ消費も少ないため、ではなくStringBuilder
(not )を使用する必要があります。StringBuffer
String
一つの声明文があれば、
String s = "1, " + "2, " + "3, " + "4, " ...;
String
コンパイラが自動的に使用するので、 s を使用できますStringBuilder
。