System.nanoTime()的文件说如下(强调我的)。

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 time (perhaps in the future, so values may be negative). This method provides nanosecond precision, but not necessarily nanosecond accuracy. No guarantees are made about how frequently values change.

正如我所看到的,这可以用两种不同的方式解释:

>上面粗体的句子是指个人的返回值。那么,精确度和准确度就是从数字上来理解的。也就是说,精度是指有效数字的数量 – 截断的位置,精度是否是正确的数字(如在这里的最高答案中所述

What is the difference between ‘precision’ and ‘accuracy’?)

>以上粗体的句子是指方法本身的能力。然后,精确度和准确性将被理解为飞镖类比所示

(http://en.wikipedia.org/wiki/Precision_vs._accuracy#Accuracy_versus_precision:_the_target_analogy)。

因此,精度低,精度高=>错误的值以高精度反复击打:想象物理时间依然存在,nanoTime()的连续调用返回相同的数值,但是从参考时间以后的实际经过时间偏离了一些常数偏移量。

哪一个解释是正确的?我的观点是,解释2将意味着使用nanoTime()(通过减去两个返回值)的时间差的度量对于纳秒是正确的(因为测量中的恒定误差/偏移将被消除),而解释1将会不能保证测量之间的一致性,因此不一定意味着高精度的时差测量。

更新4/15/13:System.nanoTime()的Java 7文档已更新,以解决与以前的措辞可能的混淆。

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.

This method provides nanosecond precision, but not necessarily nanosecond resolution (that is, how frequently the value changes) – no guarantees are made except that the resolution is at least as good as that of 07004.

Differences in successive calls that span greater than approximately 292 years (263 nanoseconds) will not correctly compute elapsed time due to numerical overflow.

The values returned by this method become meaningful only when the difference between two such values, obtained within the same instance of a Java virtual machine, is computed.

java nanotime单位_java – System.nanoTime()的精度与精度相关推荐

  1. java数据类型单位_java的数据类型

    基本概念 bit(位) 位是计算机中存储数据的最小单位,指二进制数中的一个位数,其值为"0"或"1". byte(字节) 字节是计算机存储容量的基本单位,一个字 ...

  2. java arraycopy 参数_java System.arraycopy()复制数组

    在数组的复制中,总共有四种方法可以实现.不过在追求效率上,本篇所要提到的System.arraycopy()方法,要比我们熟知的for循环快太多.考虑到这种方法使用不频繁,所以在接下来的学习中,我们先 ...

  3. java rectangle 单位_Java作业(创建Rectangle类).doc

    <Java语言>课程作业 (第一次) 题 目 学 院 专 业 班 别 学 号 姓 名 2010年10月8日 一.课程题目 12.创建一个名为Rectangle的类来表示一个使用宽度和高度来 ...

  4. java arraycopy方法_Java System.arrayCopy()方法

    System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制. 其函数原型是: /** * Copies an array from the specified sourc ...

  5. Java中System.nanoTime()的使用

    ns(nanosecond):表示纳秒,时间单位.一秒的10亿分之一,即等于10的负9次方秒.一般会用作内存读写速度的单位. 1纳秒=0.000001毫秒 1纳秒=0.000000001秒 Java中 ...

  6. 为什么用 System.nanoTime() / 1000000 而不是 System.currentTimeMillis()?

    问题来源 以下是 zookeeper3.4.12 源码里的一小部分: 注释里有一句话是在读不懂: Time.currentElapsedTime will change but nanoTime wo ...

  7. 统计代码执行时间时,System.currentTimeMillis()与System.nanoTime()哪个更适合?

    目录 1.nanoTime是什么? 2.currentTimeMillis是什么? 3.nanoTime与currentTimeMillis在JDK中阐述 4.nanoTime与currentTime ...

  8. 为什么Java会给system报错_java – 为什么将System.nanoTime()转换为Calendar对象会给我错误的当前日期?...

    如果我理解正确,使用System.nanoTime()是一种比System.currentTimeInMillis()更准确地保持当前时间标记的方法,即使系统时间已更改.那么为什么当我将nanoTim ...

  9. java nanotime 转秒_Java的nanoTime()

    java有两个获取和时间相关的秒数方法,一个是广泛使用的 System.currentTimeMillis() 返回的是从一个长整型结果,表示毫秒. 另一个是 System.nanoTime() 返回 ...

最新文章

  1. 使用JGit API探索Git内部
  2. CSDN 十大技术主题盘点-云原生篇
  3. this.getclass().getresource 空指针异常_NPE空指针异常总结
  4. java切面不需要接口了吗_详解Spring AOP 实现“切面式”valid校验
  5. Python因数分解
  6. SCAU高级语言程序设计--实验4 选择结构(3)
  7. Linux 档案属性与目录配置
  8. miui怎么用第三方图标包_非常棒的安卓第三方桌面lawnchair体验 “Google Pixel” 样式...
  9. 谈一下为什么程序员不要进外包吧
  10. 安装红蜘蛛软件6.2教师机管理端后,无法显示学生机的解决方法
  11. android项目版本,怎查看Android项目的Android版本
  12. Html 用户反馈界面
  13. lm曲线公式推导_LM曲线
  14. 计算机打印机能不能取消正在,删除HP打印机驱动程序. 打印机驱动程序正在使用中,无法删除...
  15. 打字游戏c语言easyx,打字小游戏(天降字母)Visual Studio+EasyX
  16. wmi 计算机应用程序,WMI 提供程序宿主程序 (Wmiprvse.exe) 已安装 NLB 功能的基于 Windows Server 2008 的计算机上可能会崩溃...
  17. java编译与反编译
  18. Python - 在定义函数时,为什么默认参数不能放在必选参数前面?
  19. 吐槽下Excel的十大不规范使用问题
  20. python mssql github_GitHub 标星 1.6w+项目 HelloGitHub,让开发更简单的开源启蒙手册!...

热门文章

  1. 实施工程师面常见问题
  2. 通过局域网让别人访问自己的电脑项目
  3. 【计算机网络-1】为什么学习计算机网络
  4. ABB机械臂和RobotStudio编程简介
  5. 想做数码管显示,单片机IO口资源不够?看看WTV890语音芯片能做些啥
  6. python12306下单步骤_python编程实现12306的一个小爬虫实例
  7. s ss ss ss ss ss ss ss ss ss ss ss ss ss s
  8. 网络存储技术Windows server 2012 (项目二 动态磁盘的配置与管理)
  9. JAVA——制作java程序说明书、解决DOS下中文编码问题 GBK
  10. windows置顶程序DeskPins的下载、安装和使用