1

約3000個の他の文字列を連結した文字列を作成したいと考えています。非常に多くの文字列を使用すると、それらが何らかのプールに存在し、不要になった直後に GC によって取得されない可能性があるため、非効率になる可能性があると聞きました。

これが最善の方法ですか -

StringBuilder sb = new StringBuilder("");

for(String s : arrayWith3000Strings)
{
  sb.append(s);
}

または、すべての文字列を 1 つの文字列に連結する必要がありますか?

4

3 に答える 3

2

はい、あなたのコードは良いです。

String objects文字列連結を使用しても、文字列は不変であるため、新しいものが作成されます。

于 2012-08-30T21:38:23.807 に答える
2

これは間違いなく StringBuilder が好まれるケースです。

文字列は「不変」です。文字列を変更する操作 (「追加」を含む) は、新しい文字列を作成します。stringbuilder を使用すると、その費用を回避できます。

このリンク(多くのうちの1つ)はさらに説明しています:

于 2012-08-30T21:37:55.317 に答える
-1

StringBufferよりも優れたパフォーマンスを発揮しますがStringBuilderStringBufferスレッドセーフではありません!

編集:もちろん、それは逆です:)

于 2012-08-30T21:39:48.610 に答える