解析String,StringBuffer和StringBuilder
阿新 • • 發佈:2018-12-20
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(); } }