String/StringBuffer/StringBuilder比較

package unittest;

import java.util.Iterator;

public class Test {
public static String s;
public static StringBuffer sBuf;
public static StringBuilder sBuild;
public static int num = 100000;
//效率排行:String<StringBuffer(線程安全 多線程)<StringBuilder(非線程安全 單線程) 隨着操作數的增加,String的耗時會比後兩者的耗時多達幾十倍上百倍
//100及以下:三者無區別
//1000:String耗時3ms 後兩者耗時幾乎爲0
//10000: String耗時140ms左右 後兩者耗時幾乎爲0
//100000: String耗時14400ms左右 後兩者耗時幾乎爲0
public static void testS(){
long t1 = System.currentTimeMillis();
for (int i = 0; i < num; i++) {
s = s + i;
}
long t2 = System.currentTimeMillis();
System.out.println(“String 耗時” + (t2-t1));
}

public static void testSBuf(){
	sBuf = new StringBuffer();
	long t1 = System.currentTimeMillis();
	for (int i = 0; i < num; i++) {
		sBuf.append(i);
	}
	long t2 = System.currentTimeMillis();
	System.out.println("StringBuffer 耗時" + (t2-t1));
}

public static void testSBuild(){
	sBuild = new StringBuilder();
	long t1 = System.currentTimeMillis();
	for (int i = 0; i < num; i++) {
		sBuild.append(i);
	}
	long t2 = System.currentTimeMillis();
	System.out.println("StringBuilder 耗時" + (t2-t1));
}

public static void main(String[] args) {
	/*Test.testS();
	Test.testSBuf();
	Test.testSBuild();*/
	System.out.println("abc".chars());
}

}

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