System.nanoTime()的Java时代?

我想知道这个时代System.nanoTime()是基于什么的。显然它不是基于 1970 年,因为(System.nanoTime()/1000000L)(returns 31106704) no where near equals System.currentTimeMillis()(returns 1626111981278)。

回答

嗯,文档nanoTime()很清楚:

此方法只能用于测量经过的时间,与系统或挂钟时间的任何其他概念无关。返回的值表示自某个固定但任意的原始时间以来的纳秒(可能在未来,因此值可能为负)。在 Java 虚拟机的实例中,此方法的所有调用都使用相同的来源...

所以:

  • 时代是特定于实现的,正是方法实现的作者认为会起作用的;
  • 纪元在整个 JVM实例中都是固定的
  • 可能其中一个或两个值为负,但在这种情况下计算仍然正确。

那么,你应该关心时代吗?不。绝对不是。你一定很好奇实施?你不能,因为没有“the”实现。


以上是System.nanoTime()的Java时代?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>