String,StringBuffer與StringBuilder的比較

共同點:

1 都是字符串相關,底層的實現都是char數組

2 類都是final的,意味着不可以被繼承

區別:

String的value數組是private final的,這意味者他的值是不可以被修改的。而StringBuffer StringBuilder都是繼承AbstractStringBuilder的,他們的value數組都可以通過數組進行修改。在修改之前會檢測數組的大小是否能容納下,如果不能,那麼會進行擴容(這點與ArrayList是一致的,區別在於ArrayList擴容1.5倍,而StringBuilder的大小剛好滿足存放)。

 

StringBuffer是線程安全的(通過給方法加全局鎖),而StringBuilder是線程不安全的。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章