计算生成1到100000的字符串,各自需要多少时间,计算时间的方法是用date类中的gettime()方法,注意:gettime()得到的时间是对象生成时,到1970年1月1日0点的毫秒数,并不是方法调用时的毫秒数。
源码如下:
package com.homework;
import java.util.Date;
public class TimeCeshi {
public static void main(String[] args) {
String s="";
//String类需要的时间
Date d=new Date();
long l1=d.getTime(); //注意,比较的是对象创建的时间,不是方法调用处的时间
for(int i=0;i<100000;i++) {
s+=i;
}
Date d1=new Date();
long l2=d1.getTime();
System.out.println(l2-l1);
//Stringbuffer需要的时间
StringBuffer sb=new StringBuffer();
Date d2=new Date();
long l3=d2.getTime();
for(int i=0;i<100000;i++) {
sb.append(i);
}
Date d3=new Date();
long l4=d3.getTime();
System.out.println(l4-l3);
//Stringbuilder的时间
StringBuilder sb1=new StringBuilder();
Date d4=new Date();
long l5=d4.getTime();
for(int i=0;i<100000;i++) {
sb1.append(i);
}
Date d5=new Date();
long l6=d5.getTime();
System.out.println(l6-l5);
}
}
得到结果是
26113
4
3
可以看出,Stringbuilder的速度最快,但是线程不安全,Stringbuffer,次之,线程安全;String类速度最慢,使用中尽量避免此类