首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

JAVA基础有关问题 -

2012-03-04 
JAVA基础问题 ---在线等1.下面简单的几行程序:String ccccfor (int i 0 i times i++) {c+ccc

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);    }} 

热点排行