日期:2014-05-20  浏览次数:20579 次

结果相同的2段不同代码执行时间问题
一:
Java code

StringBuffer buffer = new StringBuffer();
for(int i=0;i<100000;i++){
    buffer.append("hello");
    buffer.append("word");
}


二:
Java code

StringBuffer buffer2 = new StringBuffer();
for(int i=0;i<100000;i++){
    buffer2.append("hello");
}
for(int i=0;i<100000;i++){
    buffer2.append("word");
}


这2段代码执行的时间是一样的吗?

------解决方案--------------------
Java code

package com.walkman.forum.july.weektwo;

public class ComputeRunTime {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println(System.currentTimeMillis());;
        StringBuffer buffer = new StringBuffer();
        for(int i=0;i<100000;i++){
            buffer.append("hello");
            buffer.append("word");
        }
        System.out.println(System.currentTimeMillis());;

        System.out.println(System.currentTimeMillis());;
        StringBuffer buffer2 = new StringBuffer();
        for(int i=0;i<100000;i++){
            buffer2.append("hello");
        }
        for(int i=0;i<100000;i++){
            buffer2.append("word");
        }
        System.out.println(System.currentTimeMillis());;
    }

------解决方案--------------------
同一个程序每次的执行时间都不会一样
------解决方案--------------------
一个是一个语句块

一个是两个语句块

两个语句块局部变量的压栈的开销要大点