StringBufferとStringBuilder
StringBufferとStringBuilderの最新ニュースをまとめて検索!
クラスはJavaにある二つの中核となる文字列クラスのひとつである。多くの場合、StringBufferStringクラスが使われるが、StringBuffer クラスはミュータブルオブジェクトであり、一方 String クラスは イミュータブルである。 つまり StringBuffer オブジェクトは更新されうるが、String クラスでは似たようなメソッドが新たにStringオブジェクトを生成しメソッドの戻り値としてreturnされた文字列の内容が変更されることで実現される。多くのString オブジェクトを生成しては捨てていく処理の替わりにStringBufferを使った方がより効率的である。
StringBuilder クラスは、同期を考慮しないことがStringBufferとは異なる点であり、これはJ2SE 5.0で導入された。オブジェクトにアクセスするシングルスレッドのときだけ、StringBuilderはStringBufferよりもより効率的に使われる。
StringBuffer と StringBuilderはjava.lang パッケージに含まれている。
パフォーマンス改善としてStringの替わりにStringBufferを使ったコード例を以下に示す。
StringBuffer sbuf = new StringBuffer(300);
for (int i = 0; i < 100; i++) {
sbuf.append(i);
sbuf.append('\n');
}
加えて、Javaコンパイラ (e.g., javac) は通常、加法演算子による文字列とオブジェクトの連結にStringBuilder (または StringBuffer)を使用する。例として、下のコード
String s = "a + b = " + a + b;
は以下のように解釈される。
StringBuffer sbuf = new StringBuffer(32);
sbuf.append ("a + b = ");
sbuf.append(a);
sbuf.append(b);
String s = sbuf.toString();
最終更新 2009年11月23日 (月) 05:59 (日時は個人設定で未設定ならばUTC)。
【StringBufferとStringBuilder】変更履歴

