两种构造 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 对象,用它来构造最终的结果。
两种构造 String 的方法效率比较的更多相关文章
- HTTP/HTTPS GET&POST两种方式的实现方法
关于GET及POST方式的区别请参照前面文章:http://www.cnblogs.com/hunterCecil/p/5698604.html http://www.cnblogs.com/hunt ...
- TextView两种显示link的方法
TextView两种显示link的方法 一.简介 也是TextView显示文本控件两种方法 也是显示丰富的文本 二.方法 TextView两种显示link的方法 1)通过TextView里面的类ht ...
- Tomcat下载安装并部署到IDEA(附带idea两种热部署设置方法)
目录 Tomcat下载教程 Tomcat安装教程 Tomcat热部署到IDEA idea两种热部署设置方法 使用Idea的时候,修改了代码,需要反复的重启Tomcat,查看效果,是不是贼烦?还记得刚上 ...
- C#两种创建快捷方式的方法
C#两种创建快捷方式的方法http://www.cnblogs.com/linmilove/archive/2009/06/10/1500989.html
- iOS - UITableView中有两种重用Cell的方法
UITableView中有两种重用Cell的方法: - (id)dequeueReusableCellWithIdentifier:(NSString *)identifier; - (id)dequ ...
- 两种ps切图方法(图层/切片)
两种Ps切图方法 一. 基础操作: a) Ctrl++ 放大图片,ctrl - -缩小图片 b) 按住空格键space+,点击鼠标左键,拖动图片. c) 修改单位,点击编辑 ...
- Eclipse中SVN的安装步骤(两种)和使用方法
Eclipse中SVN的安装步骤(两种)和使用方法 一.给Eclipse安装SVN,最常见的有两种方式:手动方式和使用安装向导方式.具体步骤如下: 方式一:手动安装 1.下载最新的Eclipse,我的 ...
- Python_两种导入模块的方法异同
Python中有两种导入模块的方法 1:import module 2:from module import * 使用from module import *方法可以导入独立的项,也可以用from m ...
- 接口测试中GET和POST两种基本HTTP请求方法的区别
面试时,可以回答(一般答前4条就行): GET参数通过url传递,POST放在request body中 GET请求在url中传递的参数是有长度限制的,而POST没有 GET比POST更不安全,因为参 ...
随机推荐
- S2SH框架整合(注解)Struts2+Spring+Hibernate+MySql
整合简介 Struts2+Spring4+hibernate4整合,Maven管理jar包,Eclipse工具.注解方式 架构截图 1.Spring整合Hibernate 1.1.创建Hibern ...
- POJ1273(最大流)
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 70451 Accepted: 2739 ...
- CodeForces 456A
Laptops Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit Sta ...
- twemproxyRedis协议解析探索——剖析twemproxy代码正编
这篇文章会对twemproxyRedis协议解析代码部分进行一番简单的分析,同时给出twemproxy目前支持的所有Redis命令.在这篇文章开始前,我想大家去简单地理解一下有限状态机,当然不理解也是 ...
- websevice(Web服务)基础
webservice简介: 1.WebService到底是什么? WebService是一种跨编程语言和跨操作系统平台的远程调用技术.所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户 ...
- webForm系列 前端框架快速引用
Html的确定就是不能重用,MVC可以在_Layout.cshtml中将每个页面都需要的js和css文件(如jq,bootstrap等)都引用进去,webform就麻烦一点. webForm需要给所以 ...
- Java程序测试之线程的使用
package thread_test; class A implements Runnable { public void run() { while(true) { System.out.prin ...
- [hadoop] - Container [xxxx] is running beyond physical/virtual memory limits.
当运行mapreduce的时候,有时候会出现异常信息,提示物理内存或者虚拟内存超出限制,默认情况下:虚拟内存是物理内存的2.1倍.异常信息类似如下: Container [pid=13026,cont ...
- GAME(A)性能测试过程模型
- BZOJ 1076: [SCOI2008]奖励关(概率+dp)
首先嘛,看了这么久概率论真的不错啊。看到就知道怎么写(其实也挺容易的= =) 直接数位dp就行了 CODE: #include<cstdio> #include<cstring> ...