String、StringBuilder、StringBuffer的不同

1、三者的運行速度方面的不同:StringBuilder > StringBuffer > String;

2、速度慢的原因之一是:String是不可改變的對象,而StringBuilder和StringBuffer是可以改變的對象;

3、StringBuilder和StringBuffer線程方面的不同:StringBuilder線程不安全、速度快;StringBuffer線程安全的、速度慢;

對於三者的總結

1、如果想要操作少量的數據用:String

2、單線程操作字符串緩衝區下操作大量數據:StringBuilder;

3、多線程操作字符串緩衝區下操作大量數據:StringBuffer;

String是一種特殊的final類,至於StringBuilder和StringBuffer其實也是一種final類,都是不可以被繼承的類;

String.class StringBuffer.class StringBuilder.class

三個類其實都是對 char[] 數組的操作,String裏面的 char[] 數組是final類型的一旦被指定就不能修改,而且String沒有對 char[] 數組操作的方法,另外兩個類的 char[] 數組沒有定義final,雖然他們本身是final 類,但是他們定義的變量不能指向其他對象,但是他們本身 char[] 是可以改變的,並且他們提供了對 char[] 數組操作的方法。例如如果用String進行字符串拼接,那麼會創建很多對象,但是用StringBuilder和StringBuffer進行字符串拼接,使用append方法沒有創建過多的對象。

發佈了17 篇原創文章 · 獲贊 7 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章