1. 程式人生 > >String、StringBuffer、StringBuilder有什麼區別

String、StringBuffer、StringBuilder有什麼區別

String是java語言非常基礎和重要的類提供了構造器和管理字串的各種基本邏輯。它是典型的Immutable類,被宣告成為final class,所有的屬性也都是final的。也由於它的不可變性,類似拼接、剪裁字串等動作,都會產生新的String物件。由於字串操作的普遍性,所以相關操作的效率往往對應用效能有明顯影響。

StringBuffer是為解決上面提到拼接產生太多中間物件的問題而提供的一個類,我們可以用append或者add方法,把字串新增到已有序列的末尾或者指定位置。StringBuffer本質是一個執行緒安全的可修改字元序列,它保證了執行緒安全,也隨之帶來了額外的效能開銷,所以除非有執行緒安全的需要,不然還是推薦使用它的後繼者,也就是StringBuilder。

StringBuilder是java1.5中新增的,在能力上沒有本質區別,但是它去掉了執行緒安全的部分,有效減小了效能開銷,是絕大部分情況下進行字串拼接的首選。