2017.11.15 String、StringBuffer、StringBuilder的比較(todo)

參考來自:http://blog.csdn.net/jeffleo/article/details/52194433

1.速度

一般來說,三者的速度是:StringBuilder > StringBuffer > String。

但是,在String a = "how" + "old" + "are" + "you"。這種直接拼接的情況下,String速度最高。這是因爲jvm的優化問題,jvm會自動識別,把"how" + "old" + "are" + "you"直接當做'how old are you"。

 

2.String

參看前篇博文:2017.11.15 String詳解

 

3.StringBuilder和StringBuffer

這兩者的api實際差不多,StringBuilder是jdk1.5引入的,1.5之前只能使用StringBuffer。翻閱了兩者的源碼,看出StringBuffer是線程安全的,StringBuilder是非線程安全的。因此多線程使用StringBuilder是會出錯的。

 

4.三者的使用場景

String的使用場景:在字符串不常變化的情況下,例如進行字符串的複製和簡單得拼接。
StringBuffer的使用場景:在字符串經常進行運算的,且在多線程的情況下,例如xml解析和StringBuffer參數的拼接。
StringBuilder的使用場景:在字符串經常進行運算的,且在單線程的情況下,例如SQL語句的拼裝。

 

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