1. 程式人生 > >String,StringBuffer,StringBuilder三者的區別

String,StringBuffer,StringBuilder三者的區別

方法 bsp 常量 可變 增加 推薦 效率 HR 單線程

相同點:

String,StringBuffer,StringBuilder,都是final類,不允許被繼承,在本質上都是字符數組,

不同點:

1.String的長度是不可變的而後兩者長度可變,在進行連接操作時,String每次返回一個新的String實例,而StringBuffer和StringBuilder的append方法直接返回this,所以當進行大量的字符串連接操作時,不推薦使用String,因為它會產生大量的中間String對象。

2.StringBuffer和StringBuilder的一個區別是,StringBuffer在append方法前增加了一個synchronized修飾符,以起到同步的作用,為此也降低了執行效率;若要在toString方法中使用循環,使用StringBuilder。

3.String是字符串常量

Stringbuffer是字符串變量

Stringbuilder是字符串變量

4.

StringBuilder與StringBuffer

StringBuilder:線程非安全的

StringBuffer:線程安全的

5、對於三者的總結:1)如果操作少量的數據用String

2)單線程下操作大量的數據用StringBuilder

3)多線程下操作大量的數據用StringBuffer

String,StringBuffer,StringBuilder三者的區別