-1

重複の可能性:
Java の StringBuilder と StringBuffer

StringBuilder と StringBuffer の違いを知りたいです。StringBuffer では、自動的に 16 文字を割り当てます。文字列「hello」を追加すると、容量が 21 に増えます。

4

3 に答える 3

6

Javadocs を見ましたか?

http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.htmlから:

このクラスは、StringBuffer と互換性のある API を提供しますが、同期は保証されません。このクラスは、文字列バッファーが単一のスレッドによって使用されていた場所 (一般的なケース) で、StringBuffer のドロップイン置換として使用するように設計されています。可能であれば、このクラスを StringBuffer よりも優先して使用することをお勧めします。これは、ほとんどの実装でより高速になるためです。

于 2012-02-29T07:21:02.793 に答える
3

主な違いは、StringBufferはスレッド セーフです (そのメソッドはすべて同期されます) が、StringBuilderはそうではありません。ただし、StringBuilder は StringBuffer よりも高速です。スレッドセーフが必要ない場合は、StringBuilder を使用してください。

于 2012-02-29T07:24:43.087 に答える
2

StringBuffer はスレッドセーフです (つまり、そのメソッドは同期されます)。ただし、これはすべてのアプリケーションで必要とされるわけではなく、そうしない場合よりもコードが遅くなります。StringBuilder は本質的に同期のない StringBuffer であるため、少し高速です。

于 2012-02-29T07:22:40.567 に答える