当前位置: 代码迷 >> J2SE >> JAVA基础有关问题 -
  详细解决方案

JAVA基础有关问题 -

热度:177   发布时间:2016-04-24 12:38:52.0
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);    }}
  相关解决方案