读书人

JAVA基础有关问题 -

发布时间: 2012-03-04 11:13:33 作者: rapoo

JAVA基础问题 ---在线等
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);    }} 

读书人网 >J2SE开发

热点推荐