关于java:对java程序员来说时间格式永远让人挠头来看Java-Date-Time-教程时间测量

在Java中,用System.currentTimeMillis()来测量工夫最不便。
你要做的是在某些操作之前获取到工夫,而后在这些操作之后你想要测量工夫,算出时间差。上面是一个例子:

long startTime = System.currentTimeMillis();
callOperationToTime();
long endTime   = System.currentTimeMillis();
long totalTime = endTime - startTime;

当初变量totalTime将蕴含执行callOperationToTime()办法所须要的全副工夫。

重复操作

因为System.currentTimeMillis()没有返回精准的工夫,所以不止一次地去执行测量操作是个不错的主见。兴许10次、100次或者1000次,甚至更多。这样因为大粒度工夫值(该值并不是每毫秒都在变动着)而导致的非精准工夫将趋于平稳。
重复执行很屡次测量操作的另一个很好的理由是,容许Java虚拟机去装载那些测量操作代码的classes,即时编译它,或者还能对它进行优化。

Timer类

前文所列出的计算方法是相当繁琐的并且爽朗,咱们能够将它封装到一个Timer类中,上面是大略的例子:

public class Timer {

  private long startTime = 0;
  private long endTime   = 0;

  public void start(){
    this.startTime = System.currentTimeMillis();
  }

  public void end() {
    this.endTime   = System.currentTimeMillis();  
  }

  public long getStartTime() {
    return this.startTime;
  }

  public long getEndTime() {
    return this.endTime;
  }

  public long getTotalTime() {
    return this.endTime - this.startTime;
  }
}

上面是个如何应用Timer类的例子:

Timer timer = new Timer();
timer.start();
callOperationToTime();
timer.end();
long totalTime = timer.getTotalTime();

以上就是本文的全副类容了,如需支付java学习材料私信回复 材料
支付一线大厂Java面试题总结+阿里巴巴泰山手册+各知识点学习思维导+一份300页pdf文档的Java外围知识点总结!

这些材料的内容都是面试时面试官必问的知识点,篇章包含了很多知识点,其中包含了有基础知识、Java汇合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分布式缓存、数据结构等等。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理