String类型:"+",concat()
StringBuffer类型:append()
我们用这三种方法各连接10000次相同字符串,输出每种方式需要的时间
import java.util.Date;
public class Demo1 {
public static void main(String[] args) {
StringBuffer a0=new StringBuffer("bwt");
String a1="bwt";
//测试+运算符进行字符串相加需要的时间
Date date=new Date();//日期对象中封装了当前时间信息 精确到毫秒
for (int i = 0; i <10000 ; i++) {
a1+="bwt";
}
System.out.println(a1);
Date date1=new Date();//日期对象中封装了当前时间信息 精确到毫秒
System.out.println("+运算符需要毫秒:"+(date1.getTime()-date.getTime()));
System.out.println("\n\n\n");
//测试String类的concat()方法进行字符串相加需要的时间
Date date2=new Date();
for (int i = 0; i <10000 ; i++) {
a1.concat("bwt");
}
System.out.println(a1);
Date date3=new Date();
System.out.println("String类的concat()需要毫秒:"+(date3.getTime()-date2.getTime()));
System.out.println("\n\n\n");
//测试StringBuffer类的append()方法进行字符串相加需要的时间
Date date4=new Date();
for (int i = 0; i <10000 ; i++) {
a0.append("bwt");
}
System.out.println(a0);
Date date5=new Date();
System.out.println("StringBuffer类的append()方法需要毫秒:"+(date5.getTime()-date4.getTime()));
System.out.println("\n\n\n");
}
}
把System.out.println(a1)语句注释后的运行结果:
+运算符需要毫秒:365
String类的concat()需要毫秒:235
StringBuffer类的append()方法需要毫秒:1
可以看出
StringBuffer类型的append()需要的时间最短