两种构造 String 的方法效率比较
2016-04-14 21:47
141 查看
直接上代码吧:
输出结果如下:
19143
47
两种构造字符串的方式,时间开销差的是好几个数量级。究其原因呢,第一种构造字符串的方式使用了重载操作符『+』,会不断的 new一个String Builder 对象,时间开销自然很大。
第二种构造字符串的方法,只生成了一个 StringBuilder对象,相当于原数组修改,时间开销自然少。
因此,当你为一个类编写 toString 方法时,如果字符串操作比较简单,可以考虑用+。
如果再 toString 方法中使用循环,那么最好自己创建一个 StringBuilder 对象,用它来构造最终的结果。
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 对象,用它来构造最终的结果。
相关文章推荐
- 算法(一)
- JvisualVM
- maven实战(08)_自动部署war到tomcat8
- lightoj 1025 - The Specials Menu 【区间dp】
- 大数加法A+B
- lightoj 1021 - Painful Bases 【数位dp 状压】
- 迷宫问题
- 判断回文数
- Linux进程调度——schedule()函数分析
- poj题目分类
- Intent的常用Flag参数
- java中文乱码解决之道(五)-----java是如何编码解码的
- 1.2.3 初次释出Linux 0.02
- 【NOI2014】魔法森林
- 复利结对项目 增添
- 复利计算器--结对2.0
- Gated Recurrent Unit (GRU)公式简介
- 随机生成10个数求和方法(11)
- [SpringBoot实践]spring-data-mongo自定义Repository接口及其实现
- slq获取某一时间段内的全部数据