第五講 String,StringBuffer,StringBuilder
阿新 • • 發佈:2021-07-10
1.Question
String、StringBuffer、StringBuilder有什麼區別?
2.Answer
String是Java語言非常基礎和重要的類,提供了構造和管理字串的各種基本邏輯。它是典型的Immutable類,被宣告成為final class,所有屬性也都是final的。也由於它的不可變性,類似拼接、裁剪字串等動作,都會產生新的String物件。由於字串操作的普遍性,所以相關操作的效率往往對應用效能有明顯影響。
StringBuffer是為解決上面提到拼接產生太多中間物件的問題而提供的一個類,我們可以用append或者add方法,把字串新增到已有序列的末尾或者指定位置。StringBuffer本質是一個執行緒安全的可修改字元序列,它保證了執行緒安全,也隨之帶來了額外的效能開銷,所以除非有執行緒安全的需要,不然還是推薦使用它的後繼者,也就是StringBuilder。
StringBuilder是Java 1.5中新增的,在能力上和StringBuffer沒有本質區別,但是它去掉了執行緒安全的部分,有效減小了開銷,是絕大部分情況下進行字串拼接的首選。