(一)String,StringBuffer,StringBuilder的區別安全
1.主要區別在於運行速度和線程安全這兩方面。多線程
①:運行速度【執行速度】---->StringBuilder >StringBuffer >Stingui
String最慢的緣由:spa
String是字符串常量【不可更改】;而StringBuffer和StringBuilder均爲字符串變量【能夠更改】。
線程
②:線程安全:對象
在線程安全上,StringBuilder是線程不安全的,而StringBuffder是線程安全的。字符串
若是一個StringBuffer對象在字符串緩衝區被多個線程使用時,StringBuffer中不少方法能夠帶有synchronized關鍵字,因此能夠保證線程是安全的,但StringBuilder的方法則沒有該關鍵字,因此不能保證線程安全,有可能會出現一些錯誤的操做。因此若是要進行的操做是多線程的,那麼就要使用StringBuffer,可是在單線程的狀況下,仍是建議使用速度比較快的StringBuilder變量
2.總結一下方法
String:適用於少許的字符串操做的狀況下。線程安全
StringBuilder:適用於單線程下在字符緩衝區進行大量操做的狀況。
StringBuffer:適用於多線程下在字符緩衝區進行大量的操做。