RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

java小知識(shí)-納秒

京東云 ? 來源:京東物流 崔冬冬 ? 作者:京東物流 崔冬冬 ? 2024-11-26 11:11 ? 次閱讀

作者:京東物流 崔冬冬

一、System.nanoTime()

java中,有這么一個(gè)方法System.nanoTime() ,你用過嗎?

二、與System.currentTimeMillis()對(duì)比

System.currentTimeMillis()我們經(jīng)常使用,可以參考對(duì)比一下

看方法意思,一個(gè)是納秒,一個(gè)是毫秒,二者有關(guān)系嗎?

先看看單位換算:一秒=1000毫秒 1毫秒=1000微秒 1微秒=1000納秒

那么1毫秒=1000000納秒,二者是不是這樣的倍數(shù)關(guān)系?

帶著疑問,我們本地打印測(cè)試一下

System.out.println("毫秒="+System.currentTimeMillis());
System.out.println("納秒="+System.nanoTime());
輸出:
毫秒=1729763507201
納秒=257832682992

很顯然,不是 1:1000000的關(guān)系,具體是什么呢?

三,方法解釋

看一下源碼中的方法解釋

Returns the current value of the running Java Virtual Machine's high-resolution time source, in nanoseconds. This method can only be used to measure elapsed time and is not related to any other notion of system or wall-clock time. The value returned represents nanoseconds since some fixed but arbitrary origin time (perhaps in the future, so values may be negative). The same origin is used by all invocations of this method in an instance of a Java virtual machine; other virtual machine instances are likely to use a different origin.

大概意思,該方法返回正在運(yùn)行的Java虛擬機(jī)的高分辨率時(shí)間源的當(dāng)前值,單位為納秒。系統(tǒng)啟動(dòng)時(shí)間到現(xiàn)在經(jīng)歷的時(shí)間,與任何其他系統(tǒng)或掛鐘時(shí)間概念無關(guān)。

四,使用場(chǎng)景

如此精度的時(shí)間,使用場(chǎng)景有哪些呢

1) 性能分析:常用于性能分析和優(yōu)化,System.nanoTime()可以測(cè)量代碼段的執(zhí)行時(shí)間,幫助開發(fā)人員找出性能瓶頸并進(jìn)行優(yōu)化。

比如:一個(gè)簡(jiǎn)單的for循環(huán),我們用System.nanoTime()計(jì)時(shí),可以見更精細(xì)的耗時(shí)。

2) 計(jì)時(shí)器:在需要精確計(jì)時(shí)的場(chǎng)景下,如計(jì)算程序執(zhí)行時(shí)間、延遲等,System.nanoTime()可以提供更精確的時(shí)間信息,避免受系統(tǒng)時(shí)間調(diào)整的影響。

3) 并發(fā)控制:在多線程編程中,我們可能需要實(shí)現(xiàn)一些并發(fā)控制策略,如超時(shí)控制、任務(wù)調(diào)度等??梢杂糜讷@取時(shí)間戳,幫助實(shí)現(xiàn)這些并發(fā)控制策略。

4) 隨機(jī)種子:Random類構(gòu)造函數(shù)中使用System.nanoTime()作為種子值,提高隨機(jī)性。具體可以看一下Random類。

五,簡(jiǎn)單總結(jié)

1)System.nanoTime()是高精度計(jì)數(shù)器,是相對(duì)時(shí)間。

2)jdk源碼中很多地方使用了System.nanoTime(),我們可以學(xué)習(xí)參考。

3)小知識(shí)分享,不足之處歡迎大家指正,關(guān)于java里的知識(shí)點(diǎn)也歡迎大家討論分享。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2966

    瀏覽量

    104700
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    激光脈沖誘導(dǎo)硅表面微結(jié)構(gòu)

    【作者】:袁春華;李曉紅;唐多昌;楊宏道;【來源】:《強(qiáng)激光與粒子束》2010年02期【摘要】:利用Nd:YAG激光脈沖,在能量密度為1~10 J/cm2范圍內(nèi)輻照單晶硅,形成了表面錐形微結(jié)構(gòu)
    發(fā)表于 04-22 11:41

    硬件如何實(shí)現(xiàn)一個(gè)信號(hào)的級(jí)精確延時(shí)?

    器件或電路后 -> 實(shí)現(xiàn)輸出延時(shí)5后才上跳,5的精確度不要超過正負(fù)20% ........ 該如何實(shí)現(xiàn)?
    發(fā)表于 12-04 15:43

    求助,c51級(jí)的延時(shí),要怎么獲得???

    在用到ds18b20的時(shí)候,那些讀寫函數(shù)要做幾百的延時(shí),不知道怎么獲得????
    發(fā)表于 03-11 21:04

    積分電路能否積分級(jí)脈沖信號(hào)

    請(qǐng)教積分電路的問題,積分電路能否對(duì)幾十的脈沖信號(hào)進(jìn)行積分?如果可以對(duì)積分電路的參數(shù)設(shè)計(jì)有什么要求?謝謝~
    發(fā)表于 10-30 18:25

    用于單電源供電的七比較器

    DN185- 用于單電源供電的七比較器
    發(fā)表于 07-24 16:59

    Rogowski線圈信號(hào)電阻對(duì)級(jí)脈沖大電流的響應(yīng)

    Rogowski線圈信號(hào)電阻對(duì)級(jí)脈沖大電流的響應(yīng):
    發(fā)表于 10-31 14:18 ?15次下載

    脈沖檢測(cè)電路圖

    脈沖檢測(cè)電路圖
    發(fā)表于 12-24 22:05 ?851次閱讀
    <b class='flag-5'>納</b><b class='flag-5'>秒</b>脈沖檢測(cè)電路圖

    級(jí)窄脈沖發(fā)生器電路

    級(jí)窄脈沖發(fā)生器電路
    發(fā)表于 02-28 11:48 ?3136次閱讀
    <b class='flag-5'>納</b><b class='flag-5'>秒</b>級(jí)窄脈沖發(fā)生器電路

    JAVA相關(guān)基礎(chǔ)知識(shí)

    JAVA相關(guān)基礎(chǔ)知識(shí),感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-10 11:17 ?0次下載

    Java設(shè)計(jì)知識(shí)講解

    本文檔內(nèi)容介紹了基于Java設(shè)計(jì)知識(shí)講解,供參考
    發(fā)表于 03-26 11:09 ?16次下載

    Java程序設(shè)計(jì)教程之Java語言的基礎(chǔ)知識(shí)概述

    本文檔詳細(xì)介紹的是Java程序設(shè)計(jì)教程之Java語言的基礎(chǔ)知識(shí)概述主要內(nèi)容包括了:1.Java語言發(fā)展簡(jiǎn)史,2.Java的特點(diǎn)(為什么要學(xué)習(xí)
    發(fā)表于 02-22 10:28 ?36次下載
    <b class='flag-5'>Java</b>程序設(shè)計(jì)教程之<b class='flag-5'>Java</b>語言的基礎(chǔ)<b class='flag-5'>知識(shí)</b>概述

    關(guān)于JAVA的相關(guān)基礎(chǔ)知識(shí)

    JAVA相關(guān)基礎(chǔ)知識(shí),Arrays.sort(數(shù)組名)—給數(shù)組排輸出,String是最基本的數(shù)據(jù)類型等等
    發(fā)表于 09-23 15:22 ?0次下載

    瞬態(tài)吸收光譜儀-EOS

    寬帶泵浦探針瞬態(tài)吸收光譜儀,可以匹配各種脈沖激光器。作為一個(gè)完整的交鑰匙系統(tǒng),EOS是一款易于調(diào)整時(shí)間窗口的瞬態(tài)光譜測(cè)量系統(tǒng),并擁有亞的時(shí)間分辨率。EOS
    的頭像 發(fā)表于 04-14 07:18 ?861次閱讀
    <b class='flag-5'>納</b><b class='flag-5'>秒</b>瞬態(tài)吸收光譜儀-EOS

    激光加工激光、皮激光、飛激光,你分得清嗎?

    大家對(duì)激光加工并不陌生,但你對(duì)經(jīng)常能聽到的激光、皮激光、飛激光等,你是否能分得清呢?▌我們先來搞清楚時(shí)間單位換算1ms(毫秒)=0.001
    的頭像 發(fā)表于 06-21 17:25 ?1359次閱讀
    激光加工<b class='flag-5'>納</b><b class='flag-5'>秒</b>激光、皮<b class='flag-5'>秒</b>激光、飛<b class='flag-5'>秒</b>激光,你分得清嗎?

    激光焊接機(jī)如何實(shí)現(xiàn)高精度焊接

    編輯:鐳拓激光激光焊接機(jī)實(shí)現(xiàn)高精度焊接主要依賴于先進(jìn)的激光技術(shù)和精確的控制系統(tǒng)。以下是鐳拓小編為大家總結(jié)的激光焊接機(jī)實(shí)現(xiàn)高精度焊接的幾點(diǎn)關(guān)鍵因素:1.激光技術(shù):
    的頭像 發(fā)表于 01-29 15:38 ?965次閱讀
    <b class='flag-5'>納</b><b class='flag-5'>秒</b>激光焊接機(jī)如何實(shí)現(xiàn)高精度焊接
    RM新时代网站-首页