System.nanoTime與System.currentTimeMillis比較
- currentTimeMillis返回的是系統當前時間和1970-01-01以前間隔時間的毫秒數,若是系統時間固定則方法返回值也是必定的(這麼說是爲了強調和nanoTime的區別),精確度是毫秒級別的
- nanoTime的返回值自己則沒有什麼意義,由於它基於的時間點是隨機的,甚至多是一個將來的時間,因此返回值可能爲負數。可是其精確度爲納秒,相對高了很多。
- currentTimeMillis不只能夠用來計算代碼執行消耗的時間 ,也能夠和Date類方便的轉換。而nanoTime則不行
- 能夠這麼說吧,currentTimeMillis是一個時鐘,而nanoTime是一個計時器,你能夠用時鐘來計算時間差,也能夠用來單純的看時間,可是做爲計時器的nanoTime則只能用來計算時間差,好在優勢是精確度高
- currentTimeMillis是基於系統時間的,也就是說若是你再程序執行期間更改了系統時間則結果就會出錯,而nanoTime是基於CPU的時間片來計算時間的,沒法人爲干擾
- 前面說了nanoTime基於的時間點是隨機的,可是對於同一個JVM裏,不一樣地方使用到的基點時間是同樣的
歡迎關注本站公眾號,獲取更多信息