/**
* stringBuilder是在jdk1.5后出来的
* 本案例是比较string stringBuffer stringBuilder 之间的性能
* (对于string与stringBuffer的区别大家都应该知道,当我们改变string的时候,就会建立新的string对象,性能消耗大。stringBuffer则是可变动的对象)
* 后两者的区别主要是stringBuffer是线程安全的 stringBuilder不是线程安全的,性能较高
* 在程序知识单线程的时候,使用stringBuilder,性能好
* 在程序需要处理多线程并发问题的时候,使用stringBuffer,安全!
* @author Administrator
*
*/
public class demo1 {
private static final String base = ” base string. “;
private static final int count = 2000000;
public static void stringTest() {
long begin, end;
begin = System.currentTimeMillis();
String test = new String(base);
for (int i = 0; i < count/100; i++) {
test = test + " add ";
}
end = System.currentTimeMillis();
System.out.println((end - begin)
+ " millis has elapsed when used String. ");
}
public static void stringBufferTest() {
long begin, end;
begin = System.currentTimeMillis();
StringBuffer test = new StringBuffer(base);
for (int i = 0; i < count; i++) {
test = test.append(" add ");
}
end = System.currentTimeMillis();
System.out.println((end - begin)
+ " millis has elapsed when used StringBuffer. ");
}
public static void stringBuilderTest() {
long begin, end;
begin = System.currentTimeMillis();
StringBuilder test = new StringBuilder(base);
for (int i = 0; i < count; i++) {
test = test.append(" add ");
}
end = System.currentTimeMillis();
System.out.println((end - begin)
+ " millis has elapsed when used StringBuilder. ");
}
public static void main(String[] args) {
stringTest();
stringBufferTest();
stringBuilderTest();
}
}