古詩詞大全網 - 成語大全 - string和stringbuffer和stringbuilder的區別

string和stringbuffer和stringbuilder的區別

string和stringbuffer和stringbuilder的區別如下:

1、線程安全:StringBuffer:線程安全,StringBuilder:線程不安全。因為StringBuffer的所有公開方法都是synchronized修飾的,StringBuilder並沒有StringBuilder修飾。

2、緩沖區:StringBuffer每次獲取toString都會直接使用緩存區的toStringCache值來構造壹個字符串。而StringBuilder則每次都需要復制壹次字符數組,再構造壹個字符串。所以,緩存沖這也是對StringBuffer的壹個優化吧,不過StringBuffer的這個toString方法仍然是同步的。

3、性能:StringBuffer是線程安全的,它所有公開方法都是同步的,StringBuilder是沒有對方法加鎖同步的,所以毫無疑問,StringBuilder的性能要遠大於StringBuffer。

字符修改上的區別:

①String。

String?s = null。

String?s =“abc”。

②StringBuffer。

StringBuffer s = null; //結果警告:Null pointer access: The variable result can only be null at this location。

StringBuffer s = new StringBuffer();//StringBuffer對象是壹個空的對象。

StringBuffer s = new StringBuffer(“abc”);//創建帶有內容的StringBuffer對象,對象的內容就是字符串”。