string:
是物件不是原始型別.
為不可變物件,一旦被建立,就不能修改它的值.
對於已經存在的string物件的修改都是重新建立乙個新的物件,然後把新的值儲存進去.
string 是final類,即不能被繼承.
stringbuffer:
字串連線操作中stringbuffer的效率要明顯比string高:
string物件是不可變物件,每次操作sting 都會重新建立新的物件來儲存新的值.
stringbuffer物件例項化後,只對這乙個物件操作。
我這裡寫了乙個小的例子,來測試string和stringbuffer在時間和空間使用上的差別。
public class test
long endfreememory = runtime.freememory();
long end = system.currenttimemillis();
system.out.println("操作耗時:" + (end - start) + "ms," + "記憶體消耗:"
+ (startfreememory - endfreememory)/1024 + "kb");
} }
測試結果:
使用string做10000次向一字串後新增字串
操作耗時:1872ms,記憶體消耗:1301kb
使用stringbuffer做10000次向一字串後新增字串
操作耗時:15ms,記憶體消耗:162kb
stringbuffer作為形參時,如果對變數進行修改:
public static void main(string args)
public static void change(stringbuffer sb1, stringbuffer sb2)
拼接後,sb2所指向的位址沒變,但是其中的內容變了。string就不會變,因為string會重新建立乙個變數,然後賦給新的值。
參考:stringbuffer作為形式引數傳遞
String和string的區別
msdn中對string的說明 string is an alias for string in the net framework。string是string的別名而已,string是c 中的類,string是framework的類,c string 對映為 framework的 string。如...
String和string的區別
最近老看見有人在論壇上問string和string有什麼區別,答案五花八門差點兒沒讓我背過氣去,乾脆放到blog上來,論壇上就貼位址了 首先,在一般情況下,string和string是一樣的,但是他們也存在如下區別 1 string始終代表 system.string 1.x 或 system.st...
String和string的區別
msdn中對string的說明 string is an alias for string in the net framework。string是string的別名而已,string是c 中的類,string是framework的類,c string對映為framework的string。如果用s...