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();}