String StringBuffer Stringbuilder之間的區別

博主是一名學生,

對一些知識有着自己的理解...也是爲了不說多餘的話了


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進行拼接


如果對上面的有什麼讀到的見解,歡迎留言!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章