1.下面简单的几行程序:
String c="ccc";
for (int i = 0; i < times; i++) {
c+="ccc";
}
请问分别当times=10000和times=50000的时候,后者的执行时间刚好是前者的5倍左右,还是小于5倍或远大于5倍?简述原因
如果你的答案不是整好5倍,请改造以上程序,要求实现同样的字符串加和功能,但是执行的时间与times大小之比需呈线性关系,而不是指数关系
------解决方案--------------------
换了StringBuffer性能的提升简直难以想象
我把次数放大了20倍才看得出来
- Java code
import java.util.Date;public class Test { public static void main(String[] args) { int times = 200000; long l1=new Date().getTime(); StringBuffer c = new StringBuffer("ccc"); for (int i = 0; i < times; i++) { c.append("ccc"); } long l2=new Date().getTime(); System.out.println(l2-l1); times=1000000; for (int i = 0; i < times; i++) { c.append("ccc"); } long l3=new Date().getTime(); System.out.println(l3-l2); }}