在此示例中,我們將學(xué)習(xí)計(jì)算Java中常規(guī)方法和遞歸方法的執(zhí)行時(shí)間。
要理解此示例,您應(yīng)該了解以下Java編程主題:
class Main {
//創(chuàng)建一個(gè)方法
public void display() {
System.out.println("計(jì)算方法執(zhí)行時(shí)間:");
}
// main 方法
public static void main(String[] args) {
//創(chuàng)建Main類的對象
Main obj = new Main();
//獲取開始時(shí)間
long start = System.nanoTime();
// 調(diào)用方法
obj.display();
//獲取結(jié)束時(shí)間
long end = System.nanoTime();
//執(zhí)行時(shí)間
long execution = end - start;
System.out.println("執(zhí)行時(shí)間: " + execution + " 納秒");
}
}輸出結(jié)果
計(jì)算方法執(zhí)行時(shí)間: 執(zhí)行時(shí)間: 656100 納秒
在上面的示例中,我們創(chuàng)建了一個(gè)名為display()的方法。該方法將一條語句輸出到指定臺。程序?qū)⒂?jì)算display()方法的執(zhí)行時(shí)間。
在這里,我們使用了System類的nanoTime()方法。該nanoTime()方法以納秒為單位返回正在運(yùn)行的JVM的當(dāng)前值。
class Main {
//創(chuàng)建一個(gè)遞歸方法
public int factorial( int n ) {
if (n != 0) //終止條件
return n * factorial(n-1); //遞歸調(diào)用
else
return 1;
}
// main 方法
public static void main(String[] args) {
//創(chuàng)建Main類的對象
Main obj = new Main();
//獲取開始時(shí)間
long start = System.nanoTime();
//調(diào)用方法
obj.factorial(128);
//獲取結(jié)束時(shí)間
long end = System.nanoTime();
//執(zhí)行時(shí)間(秒)
long execution = (end - start);
System.out.println("遞歸方法的執(zhí)行時(shí)間為");
System.out.println(execution + " 納秒");
}
}輸出結(jié)果
遞歸方法的執(zhí)行時(shí)間為 18600 納秒
在上面的示例中,我們正在計(jì)算名為factorial()的遞歸方法的執(zhí)行時(shí)間。