zoukankan      html  css  js  c++  java
  • 两种构造 String 的方法效率比较

    直接上代码吧:

    package mm_test;
    
    /**
     * @Function: TODO ADD FUNCTION. <br/>
     * @Date: 2016年4月14日 下午8:25:43
     *
     * @author zhangmengmeng01@baidu.com
     */
    public class TerminationCondition {
    
        public static void main(String[] args) {
            
    
            long start1 = System.currentTimeMillis();
            String res1 = "";
            for (int i = 1; i < 100000; i++) {
                res1 += i;
            }
            System.out.println(System.currentTimeMillis()-start1);
            
            long start2 = System.currentTimeMillis();
            StringBuilder res2 = new StringBuilder();
            for(int i=1;i<100000;i++){
                res2.append(i);
            }
            System.out.println(System.currentTimeMillis()-start2);
            
    
        }
    }

    输出结果如下:

    19143

    47

    两种构造字符串的方式,时间开销差的是好几个数量级。究其原因呢,第一种构造字符串的方式使用了重载操作符『+』,会不断的 new一个String Builder 对象,时间开销自然很大。

    第二种构造字符串的方法,只生成了一个 StringBuilder对象,相当于原数组修改,时间开销自然少。

    因此,当你为一个类编写 toString 方法时,如果字符串操作比较简单,可以考虑用+。

    如果再 toString 方法中使用循环,那么最好自己创建一个 StringBuilder 对象,用它来构造最终的结果。

  • 相关阅读:
    最近学习的情况
    0Day – 2011.1.12[From B4A]考试终于完了
    PHP 在NetBeans中的测试[转自NetBeans.org]
    12月武汉下雪了
    Delphi下指针使用总结
    0Day – 2010.12.27[转自B4A]
    AQTime教程
    C #define理解
    C 环境的搭配
    数据结构 字符串的模式匹配
  • 原文地址:https://www.cnblogs.com/sonofelice/p/5392927.html
Copyright © 2011-2022 走看看