JavaでStringBuilderを使用する場合 [重複] 質問する

JavaでStringBuilderを使用する場合 [重複] 質問する

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 )を使用する必要があります。StringBufferString

一つの声明文があれば、

String s = "1, " + "2, " + "3, " + "4, " ...;

Stringコンパイラが自動的に使用するので、 s を使用できますStringBuilder

おすすめ記事