1. 程式人生 > >Java學習筆記28:String,StringBuffer,StringBuilder的區別

Java學習筆記28:String,StringBuffer,StringBuilder的區別

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