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