面試必問系列:4、String、StringBuffer和StringBuilder的區別

思路: 共同點、不同點、運行效率 ,線程安全,使用場景

1、String、StringBuffer、StringBuilder類都是final修飾的,不可被繼承。

2、String是不可變的,底層是final類型修飾的數組,拼接時會創建新的字符串;

而StringBuffer和StringBuilder都繼承自AbstractStringBuilder,是可變的,append追加的方式,節約常量池空間。

3、StringBuilder > StringBuffer > String

4、StringBuffer方法由sychronized修飾,是線程安全的;StringBuilder不是線程安全的。

補充:String底層是不可變的,所以也是線程安全的。

5、String: 少量的字符串操作場景

     StringBuffer:多線程下在字符串緩衝區進行大量操作

     StringBuilder:單線程下在字符串緩衝區進行大量操作

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