System.nanoTime與System.currentTimeMillis的區別
平時產生隨機數時我們經常拿時間做種子,比如用System.currentTimeMillis的結果,但是在執行一些迴圈中使用了System.currentTimeMillis,那麼每次的結果將會差別很小,甚至一樣,因為現代的計算機執行速度很快。後來看到java中產生隨機數函式以及執行緒池中的一些函式使用的都是System.nanoTime,下面說一下這2個方法的具體區別。
System.nanoTime提供相對精確的計時,但是不能用他來計算當前日期,在jdk中的說明如下:
public static long nanoTime()
- 返回最準確的可用系統計時器的當前值,以毫微秒為單位。
此方法只能用於測量已過的時間,與系統或鐘錶時間的其他任何時間概念無關。返回值表示從某一固定但任意的時間算起的毫微秒數(或許從以後算起,所以該值可能為負)。此方法提供毫微秒的精度,但不是必要的毫微秒的準確度。它對於值的更改頻率沒有作出保證。在取值範圍大於約 292 年(263 毫微秒)的連續呼叫的不同點在於:由於數字溢位,將無法準確計算已過的時間。
例如,測試某些程式碼執行的時間長度:
long startTime = System.nanoTime(); // ... the code being measured ... long estimatedTime = System.nanoTime() - startTime;
-
- 返回:
- 系統計時器的當前值,以毫微秒為單位。
- 從以下版本開始:
- 1.5
System.currentTimeMillis返回的是從1970.1.1 UTC 零點開始到現在的時間,精確到毫秒,平時我們可以根據System.currentTimeMillis來計算當前日期,星期幾等,可以方便的與Date進行轉換,下面時jdk中的介紹:
public static long currentTimeMillis()
- 返回以毫秒為單位的當前時間。注意,當返回值的時間單位是毫秒時,值的粒度取決於底層作業系統,並且粒度可能更大。例如,許多作業系統以幾十毫秒為單位測量時間。
請參閱
Date
-
- 返回:
- 當前時間與協調世界時 1970 年 1 月 1 日午夜之間的時間差(以毫秒為單位測量)。
- 所以在使用中,我們可以根據我們具體的目的去正確的選擇他們。
相關推薦
System.nanoTime與System.currentTimeMillis的區別
平時產生隨機數時我們經常拿時間做種子,比如用System.currentTimeMillis的結果,但是在執行一些迴圈中使用了System.currentTimeMillis,那麼每次的結果將會差別很小,甚至一樣,因為現代的計算機執行速度很快。後來看到jav
System.getenv() 與System.getProperty()用法區別
一、[b]java System.getenv()[/b] 與[b]System.getProperty()[/b]用法區別System.getenv()可以得到系統的所有環境變數System.getenv(key)可得到系統的某個環境變數Map map = System.g
System.load()與System.loadLibrary()
不同 包括 name 之一 必須 只需要 file get 調用 Java load 和 loadlibrary方法的區別 1. 相同點: 兩個方法都是用來裝載dll文件,不論是JNI庫文件還是非JNI庫文件。本地方法在被調用時都需要通過這兩發方法之一將其加載至內存。 2
深入學習java原始碼之System.console()與System.load()
深入學習java原始碼之System.console()與System.load() System類包含幾個有用的類欄位和方法。 它不能被例項化。 System類提供的System包括標準輸入,標準輸出和錯誤輸出流; 訪問外部定義的屬性和環境變數; 一種載入檔案和庫的方法; 以及用於
簡述System.Windows.Forms.Timer 與System.Timers.Timer用法區別
new 休眠 由於 多次 ext thread sum delegate pos System.Windows.Forms.Timer 基於窗體應用程序 阻塞同步 單線程 timer中處理時間較長則導致定時誤差極大。 System.Timers.Timer
《[C#] int與System.Int32有什麽區別》
int ima return 基礎 ini nop clas cal black 最近園裏的TeamOne寫了一篇《[C#] int與System.Int32有什麽區別》,發現裏面有不少精彩的評論,所以忍不住想這篇文章總結一下:> 本文的主要參考資料: 1.《理解
java的System.currentTimeMillis()和System.nanoTime
納秒 ns(nanosecond):納秒, 時間單位。一秒的10億分之一,即等於10的負9次方秒。常用作 記憶體讀寫速度的單位,其前面數字越小則表示速度越快。 1納秒=1000 皮秒 1納秒
java 標準輸出與標準錯誤 out與 err 區別 用法 聯絡 java中的out與err區別 System.out和System.err的區別 System.out.println和System.err.println的區別 Java重定向S
/** * The "standard" output stream. This stream is already * open and ready to accept output data. Typically this stream * corresponds
system.exit(0) system.exit(1) 含義與區別
s首先他倆都是退出程式的意思: 區別在於:system.exit(0):正常退出,程式正常執行結束退出 system.exit(1):是非正常退出,就是說無論程式
由 System.arraycopy 引發的鞏固:物件引用 與 物件 的區別
作者:林冠巨集 / 指尖下的幽靈 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 部落格:http://www.cnblogs.com/linguanh/ GitHub : https://github.com/af913337456/
android system.exist(0)與finish()的區別
system.exist(0)與finish()的區別,在這裡由於理解不深,只是簡單說一下它倆個應用後的不同效果: finish():用於銷燬掉當前activity,如果該activity是root activity of stack,finish()後雖然會
Arrays.copyof(···)與System.arraycopy(···)陣列元素複製區別
他們的區別就是 System.arraycopy不關心你是什麼資料型別,只是完成資料元素複製。Arrays.copyof方法是根據不同型別呼叫System.arraycopy方法完成複製內容。 System.arraycopy方法是一個本地方法的位元組複製函
Java中的時間精度 .System.currentTimeMillis() 、System.nanoTime() 方法 使用
在Java中可以通過System.currentTimeMillis()或者System.nanoTime() (JDK>=5.0) 方法獲得當前的時間的精確值。但是通過閱讀Javadoc,我們發現這兩個方法並不一定保證得到你所期望的精度。先來看System.currentTimeMillis():
System.Windows.Forms.Timer與System.Timers.Timer的區別
.NET Framework裡面提供了三種Timer: System.Windows.Forms.Timer System.Timers.Timer System.Threading.Timer VS.Net 2005預設只有一個Timer控制元件,但那是System.
Arrays.copyof(···)與System.arraycopy(···)區別
首先觀察先System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)的宣告:public static native void arraycopy(Object src, i
posix訊息佇列與system v訊息佇列的區別
/********************************************************************* * Author : Samson * Date : 04/25/2012 * Test platform: *
列印輸出語句:System.out.println("內容"+i+1+"內容");與System.out.println("內容"+(i+1)+"內容");的區別
連線符和 “+”運算子區別 測試語句: package com.it.test; public class Test { public static void main(String[]
IPC- Posix與system v
同步 linu 一個 tin 減少 ces 鏈接 emctl dia 一、功能上的區別 posix和system v有什麽區別/?現在在應用時應用那一標準浮雲484212 | 瀏覽 243 次 2014-11-06 10:362014-11-19 22:36 最佳答案
System類與Runtime類
應用 load get native blog img 交互 jvm runtime PS: Java程序在不同操作系統上運行時,可能需要取得平臺相關的屬性,或者調用平臺命令來完成特定功能。java提供了System類與Runtime類來與程序的運行平臺進行交互。 Sy
Silverlight & Blend動畫設計系列十:Silverlight中的坐標系統(Coordinate System)與向量(Vector)運動
過度 highlight 圖片 nbsp mgr ack jpg .com bsp 原文:Silverlight & Blend動畫設計系列十:Silverlight中的坐標系統(Coordinate System)與向量(Vector)運動 如果我們習慣於數學坐