java currentTimeMillis() nanoTime() 介绍

...[@more@]Java 编程语言有一个计时方法,从早期版本起它就是标准 API 的一部分。这个方法是 java.lang.System.currentTimeMillis(),它返回从 UTC 1970 年 1 月 1 日午夜开始经过的毫秒数。这个方法非常有用,特别是它在各个版本的 Java 平台上都有。因此,在 上个月 我的初始方面演示代码中,我使用了它。不过,currentTimeMillis() 也有一些缺点。

currentTimeMillis() 的一个问题是,它虽然是以毫秒计数返回时间,但是不能保证返回的计数的粒度或精度。在一些系统上,时间是真正的毫秒计数,大约每一毫秒改变一次。在另一些系统上,时间可能每隔 10 或 20 毫秒才变一次,因此每一次的精度都可能变化。

另一个局限是在方法定义中的基本时间单位。当 Java 平台第一次开始使用时,一毫秒仍然是相当短的时间间隔(特别是对于解释语言)。今天,随着 CPU 时钟速度比第一次发布 Java 平台时快了近一百倍,一毫秒已经成了相对长的一段时间。

在 JDK 5.0 中,Sun 增加了另一个方法 java.lang.System.nanoTime(),它可以提供更好的计时信息。顾名思义,nanoTime() 返回一个以纳秒为单位的时间值,提供了比 currentTimeMillis() 方法精确一百万倍的精度。即使当今的大多数系统无法提供纳秒精度的时间,但是实际值应当至少比用老的方法获得的要好得多。


来源: http://blog.itpub.net/771165/viewspace-849668/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: java system.currenttimemillis是一个Java语言中的系统函数,用于获取当前系统时间的毫秒数。它返回一个long类型的值,表示从197年1月1日00:00:00到当前时间的毫秒数。这个函数通常用于计算程序的执行时间或者记录日志等操作。 ### 回答2: Java 中的 System.currentTimeMillis() 方法是一个用于获取当前系统时间的函数。它返回一个表示从 1970 年 1 月 1 日起到当前时间所经过的毫秒数。这个值是一个 long 类型的整数。 这个函数通常被用于监测代码的性能,或者计算程序执行时间等。比如,在某些需要实现超时机制的程序中,我们可以先获取当前时间戳,然后在一定的时间内检查程序是否执行完毕。若超时,程序就会停止执行并返回一个错误信息或者抛出一个异常。 另外,我们还可以用这个函数来生成唯一的序列号或者随机数。比如,我们可以把当前时间戳作为基础,再加上一些随机数或者节点编号等,来生成一个全局唯一的 ID。这样,我们就可以在分布式系统中,快速地查找和识别不同的节点。 需要注意的是,这个函数返回的是基于系统时间的毫秒数,而不是基于 CPU 时间的。这意味着,如果我们在一个高负载的服务器上运行程序,这个函数获取到的时间可能会出现偏差。因此,我们应该在实际应用中,根据具体的需求和场景,选择合适的时间戳获取方式。 ### 回答3: Java 中的 System.currentTimeMillis() 是一个内置方法,它返回当前时间的毫秒数。它的返回值是从当前时刻起到 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)的毫秒数。它是用来进行时间戳(timestamp)的创建和比较的,时间戳是一种表示时间的标准方法,通常用于记录事件的时间和顺序。 System.currentTimeMillis() 方法返回当前系统时间,可以用于测量一段代码所花费的时间,实现计时功能等。通常情况下,建议使用 System.nanoTime() 方法来测量时间,因为它具有更高的精度和更佳的时间分辨率。 需要注意的是, System.currentTimeMillis() 方法返回的时间戳受系统时间的影响。如果系统时间发生了更改,例如在冬令时时钟更改时,在时间戳的计算中可能会出现不准确的情况。此外,在跨时区使用时,也需要考虑时区的影响,可能需要进行一些调整。 总之,System.currentTimeMillis() 是 Java 中用于获取当前时间戳的重要方法之一,它可以用于计时、记录事件和进行时间戳的比较等各种场合。在使用时需要注意时间精度和时区调整等细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值