String と StringBuilder はプロジェクトでよく使用されます。String は「+」で結合でき、StringBuilder は Append で結合できます。String は使用できるのに、なぜ StringBuilder を使用する必要があるのかわかりません。私はデータベース クエリを実行するときにクエリ ステートメントを結合するために StringBuilder を習慣的に使用していますが、その理由はまだわかりません。今日動画を見ていてStringBufferを改めて見て、使い方が似ているような気がしたので、これらの違いを確認してみました。
それは次のように要約されます。
1. 実行速度の比較: StringBuilder > StringBuffer
2. StringBuffer と StringBuilder は文字列変数であり、文字列を操作するときに実際にオブジェクトを操作することになるため、速度は速くなります。
3.StringBuilder: スレッドアンセーフ
StringBuffer: スレッドセーフ
文字列バッファーが複数のスレッドで使用される場合、JVM は StringBuilder の動作が安全であることを保証できませんが、StringBuffer が正しく動作することは保証できます。もちろん、ほとんどの場合は単一スレッドで操作を実行するため、速度の理由から StringBuffer ではなく StringBuilder を使用することをお勧めします。
3 つの使い方をまとめると次のようになります。
1. 少量のデータを操作したい場合はStringを使用する
2. 大量のデータを操作する文字列バッファのシングルスレッド操作 StringBuilder
3. 大量のデータを操作する文字列バッファのマルチスレッド操作 StringBuffer