转载自CSDN下载资源,源地址:http://download.csdn.net/download/woshishenghua/856964
2.这两段代码都是一个外循环嵌一个内循环,void function1(void)外循环的次数为1000000,内循环的次数为100,void function2(void)外循环的次数为100,内循环的次数为1000000,个人认为:“当处理器执行类似结构的代码时,从内循环的循环体跳到外循环语句时,代价较大(耗费的时间多),从内循环的循环体跳到内循环语句时,代价较小(耗费的时间少),所以,在循环的总次数一定的条件下,要想使整个代码的执行时间最少,应该尽量使外循环的次数少,内循环的次数多”,所以void function2(void)运行的实际时间比voidfunction1(void)运行的实际时间少。
证明:
/*System.currentTimeMillis()的功能为返回1970年1月1日到此时此刻的毫秒数*/
import java.io.*;
class function1{
public static void main(String[] args)
{long i,j,a,function1;long starttime=System.currentTimeMillis(); /*1970年1月1日到此时此刻的毫秒数*/
for(i=0;i<1000000;i++)
{for(j=0;j<100;j++)
{a=1;}
}
long endtime=System.currentTimeMillis();/*1970年1月1日到此时此刻的毫秒数*/
function1=endtime-starttime;/*function1的运行时间*/
System.out.println("function1(void)的运行时间为"+function1);
}
}
import java.io.*;
class function2{
public static void main(String[] args)
{long i,j,a,function2;long starttime=System.currentTimeMillis();/*1970年1月1日到此时此刻的毫秒数*/
for(i=0;i<100;i++)
{for(j=0;j<1000000;j++)
{a=1;}
}
long endtime=System.currentTimeMillis();/*1970年1月1日到此时此刻的毫秒数*/
function2=endtime-starttime; /*function2的运行时间*/
System.out.println("function2(void)的运行时间为"+function2);
}
}
程序运行结果:
function1(void)的运行时间为 313
function2(void)的运行时间为 281
由截图可知function1(void)的运行时间为313毫秒,function2(void)的运行时间为281毫秒,因此function2(void)运行的更快。