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

  • 相关阅读:
    虚方法(virtual)和抽象方法(abstract)的区别
    IT社区
    C#中动态加载和卸载DLL
    应用程序体系结构
    Enterprise Architect 7.0入门教程
    jQuery插件开发基础1
    asp.net页面事件执行顺序
    codesmith4.1破解版
    在Web.config配置文件中自定义配置节点
    小巧实用的节拍器软件FineMetronome介绍 原创
  • 原文地址:https://www.cnblogs.com/seiitsu/p/2869162.html
Copyright © 2011-2022 走看看