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());
}
}