【Java面試題】String 、StringBuilder 、StringBuffer 的區別?

String 、StringBuilder 、StringBuffer 的區別?

Java 平臺提供了兩種類型的字符串:String 和 StringBuffer/StringBuilder,它們都可以儲存和操作字符串,區別
如下。
1)String 是隻讀字符串,也就意味着 String 引用的字符串內容是不能被改變的。初學者可能會有這樣的誤解:

String str = “abc”;
str = “bcd”;

如上,字符串 str 明明是可以改變的呀!其實不然,str 僅僅是一個引用對象,它指向一個字符串對象“abc”。第二行代碼的含義是讓 str 重新指向了一個新的字符串“bcd”對象,而“abc”對象並沒有任何改變,只不過該對象已經成爲一個不可及對象罷了。
2)StringBuffer/StringBuilder 表示的字符串對象可以直接進行修改。
3)StringBuilder 是 Java5 中引入的,它和 StringBuffer 的方法完全相同,區別在於它是在單線程環境下使用的,
因爲它的所有方法都沒有被 synchronized 修飾,因此它的效率理論上也比 StringBuffer 要高。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章