Java System类

2016年07月27日

nanoTime()

返回使用java虚拟机高精度时间源的纳秒级别的当前值. 这个方法只能在计算时间流逝时使用.返回值是使用一个任意的origin固定时间(可能是负数),不同的虚拟机可能会使用不同的origin时间.

如果时间跨度超过292年(2^63),则不能正常计算时间流逝值(因为计算时会溢出).

正常使用:

          long startTime = System.nanoTime();
          // ... the code being measured ...
          long estimatedTime = System.nanoTime() - startTime;

----- 注意,获取两个时间作比较,应该使用` t1 - t0 < 0` 而不是 `t1 < t0`, 因为有数值溢出的:

              long  t0 = System.nanoTime();
              ...
              long t1 = System.nanoTime();}