2009-08-18 4 views

答えて

40

はそれと同等のものを生成します。必要に応じて、StringBuilderの使用を「パフォーマンス・トリック」と呼ぶことができます。 5つの連結を行って4つの不要な一時的な文字列を生成するよりも、パフォーマンスが優れています。また、StringBuilderを使用することで、Java 5のパフォーマンスが向上しました。以前は、StringBufferが使用されていました。

編集:コメントで指摘されているように、静的な文字列は、連結の先頭にある場合にのみ事前連結されます。それ以外の場合は、注文処理が中断されます(この場合、Sunはそれを正当化できると考えていますが)。だから、この与えられた:

String s = new StringBuilder("abcdef") 
      .append(foo()) 
      .append("uvw") 
      .append("xyz") 
      .toString(); 
+0

1:

String s = "abc" + "def" + foo() + "uvw" + "xyz"; 

それは次のようにコンパイルされるだろう。私はStringBuilderを見て、私が一番下に来て、あなたがすでにそれを世話してくれたことが分かるまで、説明を投稿する予定でした。 –

+0

うん、私は正しいものがどれかを覚えていない、最初の改訂後にそれを調べなければならなかった – Kip

+0

実際には、私は文字列リテラルの連結を指していた。一見すると、各文字列に '.append'を使用したと思いました。 –

関連する問題