博主是一名學生,
對一些知識有着自己的理解...也是爲了不說多餘的話了
String/StringBuffer/StringBuilder三則之間的區別
String:引用類型,表示字符串.對字符串進行拼接這裏使用代碼演示
//演示String對字符串的拼接
String str = " ";
//String拼接開始時間
long start = System.currentTimeMillis();
for(int i = 1 ; i < 100000 ; i++ ){
str+=i;
}
//String拼接結束時間
long end = System.currentTimeMillis();
System.out.println("執行程序所需要的時間:"+(end-start));
StringBuffer也是表示字符串.用於字符串的拼接
/使用StringBuffer拼接
String str = " ";
//拼接開始時間
long current = System.currentTimeMillis();
StringBuffer sbf = new StringBuffer();
for (int j = 0; j < 100000; j++) {
sbf.append(j).append(str);
}
long endTime = System.currentTimeMillis();
System.out.println("改代碼執行的時間:"+(endTime-current));
StringBuilder用於字符串的拼接:
//使用StringBuffer拼接
String str2 = " ";
//拼接開始時間
long current1 = System.currentTimeMillis();
StringBuilder sb = new StringBuilder();
for (int j = 0; j < 100000; j++) {
sb.append(j).append(str2);
}
long endTime1 = System.currentTimeMillis();
System.out.println("改代碼執行的時間:"+(endTime1-current1));
StringBuffer和StringBuilder拼接的速度幾乎相同.那麼到底該用哪個.
個人認爲使用StringBuffer比較好.StringBuilder存在着線程不安全的問題.可以查看原代碼
StringBuffer都使用了synchronized字段進行修飾,synchronized是爲了在多線程環境中保證線程的安全,而StringBuilder沒有使用synchronized修飾不建議使用.
而String拼接之所以很慢.是因爲沒拼接一次就會創建一次對象,這樣大大較低了程序運行的速度,
而在實際開發中也不建議使用String進行拼接
如果對上面的有什麼讀到的見解,歡迎留言!