黑马程序员技术交流社区
标题:
学习笔记-String,StringBuilder和StringBuffer之间的差异
[打印本页]
作者:
吴清源
时间:
2013-10-5 14:05
标题:
学习笔记-String,StringBuilder和StringBuffer之间的差异
String,StringBuilder和StringBuffer执行同类操作,运行效果对比
public class TestCharacter {
final static int time = 50000/*100000*/; //循环次数
public TestCharacter(){
}
public void test(String s){
long begin = System.currentTimeMillis();
for(int i=0; i<time; i++){
s += “add”;
}
long over = System.currentTimeMillis();
System.out.println(“操作”+s.getClass().getName()+”类型使用的时间为:”+(over-begin)+”毫秒”);
}
public void test(StringBuffer s){
long begin = System.currentTimeMillis();
for(int i=0; i<time; i++){
s.append(“add”);
}
long over = System.currentTimeMillis();
System.out.println(“操作”+s.getClass().getCanonicalName()+”类型使用的时间为:”+(over-begin)+”毫秒”);
}
public void test(StringBuilder s){
long begin = System.currentTimeMillis();
for(int i=0; i<time; i++){
s.append(“add”);
}
long over = System.currentTimeMillis();
System.out.println(“操作”+s.getClass().getName()+”类型使用的时间为:”+(over-begin)+”毫秒”);
}
/*对 String 直接进行字符串拼接的测试*/
public void test2(){
String s2 = “abcd”;
long begin = System.currentTimeMillis();
for(int i=0; i<time; i++){
String s = s2 + s2 +s2;
}
long over = System.currentTimeMillis();
System.out.println(“操作字符串对象引用相加类型使用的时间为:”+(over-begin)+”毫秒”);
}
public void test3(){
long begin = System.currentTimeMillis();
for(int i=0; i<time; i++){
String s =”abcd” + “abcd” + “abcd”;
}
long over = System.currentTimeMillis();
System.out.println(“操作字符串相加使用的时间为:”+(over-begin)+”毫秒”);
}
public static void main(String[] args){
String s1 = “abcd”;
StringBuffer st1 = new StringBuffer(“abcd”);
StringBuilder st2 = new StringBuilder(“abcd”);
TestCharacter tc = new TestCharacter();
tc.test(s1);
tc.test(st1);
tc.test(st2);
tc.test2();
tc.test3();
}
}
复制代码
循环50000次:
操作java.lang.String类型使用的时间为:7280毫秒
操作java.lang.StringBuffer类型使用的时间为:10毫秒
操作java.lang.StringBuilder类型使用的时间为:0毫秒
操作字符串对象引用相加类型使用的时间为:11毫秒
操作字符串相加使用的时间为:0毫秒
循环100000次:
操作java.lang.String类型使用的时间为:36251毫秒
操作java.lang.StringBuffer类型使用的时间为:10毫秒
操作java.lang.StringBuilder类型使用的时间为:0毫秒
操作字符串对象引用相加类型使用的时间为:21毫秒
操作字符串相加使用的时间为:0毫秒
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2