1. 程式人生 > >System.nanoTime (計時工具類)

System.nanoTime (計時工具類)

JDK1.5之後java中的計時給出了更精確的方法:System.nanoTime(),輸出的精度是納秒級別,這個給一些效能測試提供了更準確的參考。 


但是這個方法有個需要注意的地方,不能用來計算今天是哪一天(應該也沒人這麼傻,只是早上我突然想起) 


看到這個方法不由得會想起System.currentTime(),這個方法,它的精度是毫秒,返回值是從1970.1.1的零點開始到當前時間的毫秒數,理論上這個可以用來算當前的時間,而且可以用這個值來構造一個Date物件。但是System.nanoTime()卻是不同,程式碼註釋上有這麼一句: The value returned represents nanoseconds since some fixed but arbitrary time (perhaps in the future, so values may be negative). 


這個返回值是一個從確定的值算起的,但是這個值是任意的,可能是一個未來的時間,所以返回值有可能是負數。(我的英語很蹩腳,意思應該能明白吧)


所以說這個System.nanoTime()方法只能用來計時,例如: 


long s = System.nanoTime(); 


.... 


System.out.println(System.nanoTime() - s);