String类,StringBuffer,StringBuilder运行效率测试

计算生成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类速度最慢,使用中尽量避免此类

你可能感兴趣的:(java基础)