2
StringBuilderまたはStringBufferはいつ使用する必要がありますか?
実稼働Webアプリケーションでは、私の仲間のプログラマーがStringBufferをどこでも使用していました。現在、アプリケーションの開発と修正を担当しています。StringBuilderとStringBufferを読んだ後、すべてのStringBufferコードをStringBuilderに置き換えることにしました。これは、データBeanでスレッドセーフが必要ないためです。 例:(各データBeanでStringBufferの使用を確認できます) @Override public String toString() { StringBuffer sb = new StringBuffer();// replace it from StringBuilder sb.append(" ABCD : ").append(abcd); sb.append(", EFGH : ").append(efgh); sb.append(", IJKL : ").append(ijkl); } セッション/リクエストごとに個別のデータBeanを作成します。セッションは、他のユーザーがアクセスできない単一のユーザーによって使用されます。 移行する前に他の点を考慮する必要がありますか? 単一のスレッドがある場合(待機中のスレッドがないか、新しいスレッドがオブジェクトロックを探していない場合)、StringBufferまたはStringBuilderのどちらでも同様に実行されます。StringBufferの場合、オブジェクトロックを取得するのに時間がかかることは知っていますが、オブジェクトロックの保持/解放を除いて、それらの間にパフォーマンスの違いがあるかどうかを知りたいです。