StringクラスとStringBufferクラスの違い


1、StringとStringBufferの違い:
Stringクラスオブジェクトは可変オブジェクトであり、Stringオブジェクトの値を変更すると、暗黙的に新しいオブジェクトを再作成し、元のStringオブジェクトを解放します.StringBufferクラスオブジェクトは修正可能オブジェクトであり、append()メソッドで値を変更できます.
StringクラスオブジェクトのパフォーマンスはStringBufferクラスにはるかに及ばない.
以上の具体的な解釈については,javaに3つのクラスが文字の操作を担当している.
Characterは、1文字の操作を行うです.
Stringは文字列を操作します.可変クラス.
StringBufferも文字列を操作しますが、可変クラスです.
public class StringMainTest {

	public static void main(String[] args) {
		String str = "abc";
		String tmp = "";
		long start = System.currentTimeMillis();
		for (int i = 0;i < 500000; i ++) {
			str = str + tmp;
		}
		System.out.println(System.currentTimeMillis() - start);
		
		StringBuffer buf = new StringBuffer("abc");
		long start1 = System.currentTimeMillis();
		for (int i = 0;i < 500000; i ++) {
			buf.append(tmp);
		}
		System.out.println(System.currentTimeMillis() - start1);
	}

}
37
10

2、ソース:
Stringオブジェクトのフィールド定義:
private final char value[];

StringBufferオブジェクトのフィールド定義:
char[] value;