微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

System.nanoTime() 的 Java 时代?

如何解决System.nanoTime() 的 Java 时代?

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

解决方法

嗯,nanoTime() 的文档相当清楚:

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

所以:

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。