1. 程式人生 > >解析String,StringBuffer和StringBuilder

解析String,StringBuffer和StringBuilder

1.String

String是一個被final定義的類,所以一旦建立了String物件,其值不可被改變。

當我們更改字串的值時,虛擬機器會新建一個String物件,並賦予其值,

所以我們每一次更改String的值時候,記憶體中在做銷燬物件,新建物件的操作,其效率非常低。

2.StringBuffer

StringBuffer是執行緒安全的

StringBuffer 的物件能夠被多次的修改,並且不產生新的未使用物件。

3.StringBuilder

StringBuilder 類的物件能夠被多次的修改,並且不產生新的未使用物件。

StringBuilder 類在 Java 5 中被提出, StringBuilder 的方法不是執行緒安全的(不能同步訪問)。

StringBuilder 比 StringBuffer 有速度優勢,所以多數情況下建議使用 StringBuilder 類。

4.Test

public class Test {
	public static void main(String[] args) {
	
		String str="abc";
		str="123";   //刪除原str新建了一個String型別的物件
		System.out.println(str);
		
		
		StringBuffer strb=new StringBuffer("abc");
		strb.append("123");        //改變的是原StringBuffer物件的值,並未新建物件
		strb.append("456");
		System.out.println(strb);
		
		
		//StringBuffer物件轉換為String型別
                //將StringBuffer型別轉化為String不能直接轉
		String m=strb.toString();
	}
}