测试StringBuffer与StringBuilder的效率

相同点:都是长度可变的字符串,两者基本操作相同

两者主要区别在于:

1.StringBuffer是线程安全的,StringBuilder是线程不安全的

2.StringBuffer从jdk1.0就存在,StringBuilder是在jdk5.0后才出现

StringBuilder相较与StringBuffer有速度优势,所以多数情况下建议使用StringBuilder
然而应用程序要求线程安全的情况下,则必须使用StringBuffer类

代码演示:

//StringBuilder线程不安全
public class StringBuilderDemo {
	public static void main(String[] args) {
		long beginTime = System.currentTimeMillis();//开始计时
		StringBuilder builder = new StringBuilder();
		for(int i=0;i<80000000;i++) {
			builder.append(i);
		}
		long endtime = System.currentTimeMillis();//结束计时
		System.out.println("StringBuilder所用时间:"+(endtime-beginTime));
	}
}

结果:测试StringBuffer与StringBuilder的效率_第1张图片

//StringBuffer线程安全
public class StringBufferDemo {
	public static void main(String[] args) {
		long beginTime1 = System.currentTimeMillis();//开始计时
		StringBuffer buffer = new StringBuffer();
		for(int i=0;i<80000000;i++) {
			buffer.append(i);
		}
		long endtime1 = System.currentTimeMillis();//结束计时
		System.out.println("StringBuffer所用时间:"+(endtime1-beginTime1));
	}
}

结果:
测试StringBuffer与StringBuilder的效率_第2张图片
由此可见,StringBuilder确实是会比StringBuffer速度更快一些

你可能感兴趣的:(Java)