A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王小丑 中级黑马   /  2013-2-10 23:30  /  1302 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刚看到一道题 在网上看到的 有点小不确定 求高手指点:
string str1=”1″+”2″+”3″+….+”1000″; 1式
string str2;
for(int i = 1; i <=1000 ;i++)
str2+=i; 2式
stringbuffer str3 = new stringbuffer();
for(int i = 1; i <=1000 ;i++)
str3 = str3.append(i); 3式
1式和2式那个执行速度快?
2式和3式那个执行速度快?

2 个回复

倒序浏览
感觉上1,2比较,1执行一条语句,2执行1000条语句,时间复杂度上2更高,应该是1更快。
2,3比较,+=方法是每次创建新的对象而append是直接拼接引用,效率上是append高,应该是3更快。
回复 使用道具 举报
李培根 来自手机 金牌黑马 2013-2-11 00:14:45
藤椅
1和2比较是1更快,string str1=”1″+”2″+”3″+….+”1000″;和String str = "12345……1000"是一样的效果,在编译的时候将加号去掉创建一个对象,2式创建了1000个对象。

2式和3式比就不用多说了,肯定是3更快。

点评

高手......  发表于 2013-2-12 12:53
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马