1. ホーム

[解決済み】String, StringBuffer, StringBuilderについて

2022-04-06 07:02:19

質問

比較するために、リアルタイムの状況を教えてください。 String , StringBuffer および StringBuilder ?

解決方法は?

ミュータビリティの違い。

String 不変 の場合、その値を変更しようとすると、別のオブジェクトが作成されます。 StringBufferStringBuilder ミュータブル というように、値を変更することができます。

スレッドセーフの違い。

との違いは StringBufferStringBuilder は、その StringBuffer はスレッドセーフです。ですから、アプリケーションをシングルスレッドで実行する必要があるときは StringBuilder . StringBuilder よりも効率的です。 StringBuffer .

シチュエーション

  • 文字列が変化しない場合は、Stringクラスを使用します。 String オブジェクトはイミュータブルです。
  • 文字列が変化する可能性があり (例: 文字列の構築に多くのロジックや操作が必要)、単一のスレッドからのみアクセスされる場合は StringBuilder で十分です。
  • 文字列が変化する可能性があり、複数のスレッドからアクセスされる場合は StringBuffer なぜなら StringBuffer は同期なので、スレッドセーフになります。