单线程下Stringbuffer反而比stringbuilder快,什么原因?
输出结果
爱慕课
使用StringBuilder累加5000次使用时间(毫秒):3
使用StringBuffer累加5000次使用时间(毫秒):1
使用string累加5000次使用时间(毫秒):279
输出结果
爱慕课
使用StringBuilder累加5000次使用时间(毫秒):3
使用StringBuffer累加5000次使用时间(毫秒):1
使用string累加5000次使用时间(毫秒):279
2017-12-03
public class HelloWorld { public static void main(String[] args) { // 创建一个StringBuilder对象,用来存储字符串 StringBuilder hobby=new StringBuilder("爱慕课"); System.out.println(hobby); StringBuilder a0 = new StringBuilder("test0"); long t = System.currentTimeMillis(); for(int s=0;s<5000;s++){ a0.append(s); } long t0 = System.currentTimeMillis(); System.out.println("使用StringBuilder累加5000次使用时间(毫秒):"+ (t0-t) ); StringBuffer a1 = new StringBuffer("test1"); long t1 = System.currentTimeMillis(); for(int s=0;s<5000;s++){ a1.append(s); } long t2 = System.currentTimeMillis(); System.out.println("使用StringBuffer累加5000次使用时间(毫秒):"+(t2-t1)); long t3 = System.currentTimeMillis(); String a2="test2"; for(int s=0;s<5000;s++){ a2 = a2+s; } long t4 = System.currentTimeMillis(); System.out.println("使用string累加5000次使用时间(毫秒):"+(t4-t3)); } }
举报