在此示例中,我們將學(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類的對(duì)象 Main obj = new Main(); //獲取開(kāi)始時(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()的方法。該方法將一條語(yǔ)句輸出到指定臺(tái)。程序?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類的對(duì)象 Main obj = new Main(); //獲取開(kāi)始時(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í)間。