Java string stringbuffer stringbuilder 區(qū)別

1.String

字符串常量。

String s = "abcd";
s = s+1;
System.out.print(s);
// result : abcd1

這一段創(chuàng)建了兩個對象,分別為abcd的常量和abcdl的常量。
第一個常量對象被jvm進行g(shù)c回收。

2.StringBuffer

字符串變量
線程安全的。

3.StirngBuilder

字符串變量
線程不安全的。

4.速度比較

  • StringBuilder>StringBuffer>String
    原因:
    1. 變量比常量操作更加快速。
    2. 因為常量的每一次改變需要新建一個常量。
      StringBuilder不用考慮線程安全的問題,所以比StringBuffer快。

5.特例

String s="a"+"b";
StringBuilder s=new StringBuilder("a").append("b");

在這里String是比StringBuilder快的,因為jvm直接將String的操作轉(zhuǎn)換成

String s="ab";

如果是這樣

String s="a";
s=s+"b";

那么String的速度就比StringBuilder慢了。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容