当前位置: 代码迷 >> J2SE >> 结果相同的2段不同代码执行时间有关问题
  详细解决方案

结果相同的2段不同代码执行时间有关问题

热度:138   发布时间:2016-04-24 02:17:48.0
结果相同的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());;    }
------解决方案--------------------
同一个程序每次的执行时间都不会一样
------解决方案--------------------
一个是一个语句块

一个是两个语句块

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