區(qū)別
1.可變性
String是字符串常量,由final修飾我纪,具有不可變性,Stringbuffer丐吓,StringBuilder是字符串變量浅悉,是可變的,是一個字符可變序列券犁。
2.線程安全
StringBuffer是線程安全的术健,StringBuilder是非線程安全的
3速度
StringBuilder 最快,StringBuffer次之粘衬,String最慢
適用范圍
String:適用于少量的字符串操作的情況
StringBuilder:適用于單線程下在字符緩沖區(qū)進行大量操作的情況
StringBuffer:適用多線程下在字符緩沖區(qū)進行大量操作的情況
賦值特殊情況
String str=“abc”+“de”;
StringBuilder stringBuilder=new StringBuilder().append(“abc”).append(“de”);
System.out.println(str);
System.out.println(stringBuilder.toString());
結果相同荞估,都為“abcde”
但操作速度卻是String更快咳促,這是因為String拼接兩個字符串常量,上面代碼第一行的格式勘伺,等同于String=“abcde”,直接拼接在一起跪腹,無需創(chuàng)建回收對象。
StringBuffer和StringBuilder的使用
在我們使用時仍需用toString方法將StringBu和StringBudder裝換為String類型才可輸出飞醉。