问答详情
源自:2-5 认识 Java 中的 StringBuilder 类

单线程下Stringbuffer反而比stringbuilder快,什么原因?

输出结果


爱慕课
使用StringBuilder累加5000次使用时间(毫秒):3
使用StringBuffer累加5000次使用时间(毫秒):1
使用string累加5000次使用时间(毫秒):279

提问者:进击de攻城狮 2017-12-03 16:53

个回答

  • 不够优秀不改名
    2018-11-04 11:43:31

    有一手有一手

  • 进击de攻城狮
    2017-12-03 16:54:37

    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));
    
    }
    }