zoukankan      html  css  js  c++  java
  • StringBuilder、StringBuffer、String类之间的关系

    【详情点击链接: http://www.test-life.org/?p=56 | 测试之路-My Test Space

    public class TestCharacter {
    final static int time = 50000;  //循环次数

    public TestCharacter(){

    }
    public void test(String s){
    long begin = System.currentTimeMillis();
    for(int i=0; i<time; i++){
    s += “add”;
    }
    long over = System.currentTimeMillis();
    System.out.println(“操作”+s.getClass().getName()+”类型使用的时间为:”+(over-begin)+”毫秒”);
    }
    public void test(StringBuffer s){
    long begin = System.currentTimeMillis();
    for(int i=0; i<time; i++){
    s.append(“add”);
    }
    long over = System.currentTimeMillis();
    System.out.println(“操作”+s.getClass().getCanonicalName()+”类型使用的时间为:”+(over-begin)+”毫秒”);
    }
    public void test(StringBuilder s){
    long begin = System.currentTimeMillis();
    for(int i=0; i<time; i++){
    s.append(“add”);
    }
    long over = System.currentTimeMillis();
    System.out.println(“操作”+s.getClass().getName()+”类型使用的时间为:”+(over-begin)+”毫秒”);
    }

    /*对 String 直接进行字符串拼接的测试*/
    public void test2(){
    String s2 = “abcd”;
    long begin = System.currentTimeMillis();
    for(int i=0; i<time; i++){
    String s = s2 + s2 +s2;
    }
    long over = System.currentTimeMillis();
    System.out.println(“操作字符串对象引用相加类型使用的时间为:”+(over-begin)+”毫秒”);
    }
    public void test3(){
    long begin = System.currentTimeMillis();
    for(int i=0; i<time; i++){
    String s =”abcd” + “abcd” + “abcd”;
    }
    long over = System.currentTimeMillis();
    System.out.println(“操作字符串相加使用的时间为:”+(over-begin)+”毫秒”);
    }
    public static void main(String[] args){
    String s1 = “abcd”;
    StringBuffer st1 = new StringBuffer(“abcd”);
    StringBuilder st2 = new StringBuilder(“abcd”);
    TestCharacter tc = new TestCharacter();
    tc.test(s1);
    tc.test(st1);
    tc.test(st2);
    tc.test2();
    tc.test3();
    }
    }
    我在myeclipse和dos下都运行了这段代码,各自打印出的时间有些不同,运行结果如下:
    1)myeclipse下循环10000次时:

    2)myeclipse下循环50000次时:

    3)在DOS下运行时:

    本文固定链接: http://www.test-life.org/?p=56 | 测试之路-My Test Space

  • 相关阅读:
    马哥Linux——第三周作业
    [laravel]phpunit
    [laravel]要点
    [laravel]请求处理
    [angularJS]ng-hide|ng-show切换
    [yii2]urlmanger
    虚拟机bridged, NAT and host-only网络区别
    [yii]Fetch data from database and create listbox in yii
    [shell test] multiple conditions
    特殊的shell变量:
  • 原文地址:https://www.cnblogs.com/seiitsu/p/2869162.html
Copyright © 2011-2022 走看看