在 Java 中实现精确计时是一个常见的需求,尤其是在性能测试、任务调度和实时系统开发中。Java 提供了多种方式来实现精确计时,包括使用 System.currentTimeMillis()、System.nanoTime() 以及 java.time 包中的类。本文将详细介绍这些方法,并提供示例代码。
1. 使用 System.currentTimeMillis()
System.currentTimeMillis() 返回当前时间的毫秒数,通常用于测量时间间隔。
1.1 示例代码
public class TimerExample {
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
// 模拟耗时操作
try {
Thread.sleep(1000); // 休眠1秒
} catch (InterruptedException e) {
e.printStackTrace();
}
long endTime = System.currentTimeMillis();
long elapsedTime = endTime - startTime;
System.out.println("Elapsed time: " + elapsedTime + " milliseconds");
}
}
1.2 代码解析
- System.currentTimeMillis():返回当前时间的毫秒数。
- elapsedTime:计算时间间隔(以毫秒为单位)。
1.3 优点
简单易用,适用于大多数场景。
1.4 缺点
精度为毫秒级,无法满足高精度计时需求。
2. 使用 System.nanoTime()