StringBuffer與String主要的區別是:java
1.StingBuffer在進行字符串處理時不生成新的對象,可是String的每次修改都是產生新的對象,因此在內存上StringBuffer優於String安全
2.StirngBuffer只能經過構造函數創建。app
StringBuffer stringbuffer=new StringBuffer("ab");函數
注意:不能經過賦值符號賦值!!性能
3.String str = new String("welcome to ");ui
str += "China";
的處理步驟其實是經過創建一個StringBuffer,而後調用append(),最後
再將StringBuffer toSting();
這樣的話String的鏈接操做就比StringBuffer多出了一些附加操做,固然效率上要打折扣.spa
若是在程序中須要對字符串進行頻繁的修改鏈接操做的話.使用StringBuffer性能會更高。線程
StringBuffer與StringBuilder主要區別是:code
1.StringBuffer是線程安全的,StringBuilder是非線程安全的。對象
StringBuffer StringBuilder String三者相同點:
1.都是final 類型,不能被繼承。
2.都實現了CharSequence接口
public class test { public static void main(String[] arg0){ StringBuffer stringBuffer=new StringBuffer("abc"); stringBuffer.append("de"); boolean bool=false; stringBuffer.append(bool); Object object=stringBuffer.charAt(2); Object object2=stringBuffer.substring(2, 4); System.out.println(stringBuffer); System.out.println(object); System.out.println(object2); } }
結果:abcdefalse
c
cd