StringBuilderとStringBuffer
こんなこと言われた。
マルチスレッドでアクセスされる箇所はStringBuffer、シングルスレッドアクセスが保証されているなら高速なStringBuilderを使いましょう。
まあ、概ね正しいけど・・。ケースによってはStringを使用するという選択肢もあるデスよ。
↓こんなカンジかな。
public class Test { private volatile String value; public String get() { return this.value; } public synchronized void append(String toAppend) { this.value += toAppend; } }
使えるのは読み出し(get)に対して書き込み(append)の頻度が少ないケース。書き込みのコストは若干高いけど、読み出しはStringBuffer、StringBuiderに比べて最速デス。さらに、書き込みと読み出しがお互いの処理をブロックしません。
書き込みの排他が必要デス。