Java學習筆記28:String,StringBuffer,StringBuilder的區別
阿新 • • 發佈:2019-01-05
String,StringBuffer,StringBuilder的區別是什麼?String為什麼是不可變的?
- String是字串常量,StringBuffer和StringBuilder是字串變數。
- StringBuffer是執行緒安全的,StringBuilder是非執行緒安全的。
- 具體來說String是一個不可變的物件,每次修改String物件實際上是創新新物件,並將引用指向新物件。效率很低。StringBuffer是可變的,即每次修改只是針對其本身,大部分情況下比String效率高,StringBuffer保證同步(synchronized),所以執行緒安全。
- StringBuilder沒有實現同步,所以非執行緒安全。但效率應該比StringBuffer高。StringBuffer使用時最好指定容量,這樣會比不指定容量快30%-40%,甚至比不指定容量的StringBuilder還快。
1.String,StringBuffer,StringBulilder終極總結
https://blog.csdn.net/aA518189/article/details/79144103
2.StringBuffer 詳解
https://blog.csdn.net/qq_31059475/article/details/71433678