黑马程序员技术交流社区

标题: 求解:一道java笔试题 [打印本页]

作者: 王小丑    时间: 2013-2-10 23:30
标题: 求解:一道java笔试题
刚看到一道题 在网上看到的 有点小不确定 求高手指点:
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式那个执行速度快?

作者: 许鑫星    时间: 2013-2-10 23:39
感觉上1,2比较,1执行一条语句,2执行1000条语句,时间复杂度上2更高,应该是1更快。
2,3比较,+=方法是每次创建新的对象而append是直接拼接引用,效率上是append高,应该是3更快。
作者: 李培根    时间: 2013-2-11 00:14
1和2比较是1更快,string str1=”1″+”2″+”3″+….+”1000″;和String str = "12345……1000"是一样的效果,在编译的时候将加号去掉创建一个对象,2式创建了1000个对象。

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2