在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、分布式缓存、数据结构等等。

对java程序员来说时间格式永远让人挠头来看Java Date Time 教程-时间测量的更多相关文章

  1. 【Java】Java程序员面试宝典(第三版)第5章----Java程序设计基本概念

    1.static静态变量,在次级作用域也可以被修改. 2.k++ + k++.第一个自加实际上只有在与计算+k++时补增.详情P36的题目. 3.Java数据类型从低到高分为(byte short c ...

  2. Java程序员面试题集(1-50)(转)

    转:http://blog.csdn.net/jackfrued/article/details/17339393 下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和 ...

  3. 最有价值的50道java面试题 适用于准入职Java程序员

    下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最 ...

  4. Java程序员面试题集(1-50

    下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最 ...

  5. 从小工到专家 ——读《Java程序员职场全攻略》有感

    从小工到专家 ——读<Java程序员职场全攻略>有感   <Java程序员职场全攻略>是以故事的形式,向读者介绍Java程序员的职场经验.作者牛开复在北京从事软件开发,已经是一 ...

  6. 工作了3年的JAVA程序员应该具备什么技能?(zhuan)

    http://www.500d.me/article/5441.html **************************************** 来源:五百丁 作者:LZ2016-03-18 ...

  7. 五月的仓颉大神写的 三年java程序员面试感悟 值得分享给大家

    感谢 五月的仓颉  的这篇文章 , 让我重新认识到自己身上的不足之处 .  原文地址http://www.cnblogs.com/xrq730/p/5260294.html,转载请注明出处,谢谢! 前 ...

  8. 如何突破JAVA程序员三年的门槛

    第一阶段:三年 我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人.这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本 上的内容迈向真正的企业级开发.我们知道如何团 ...

  9. 工作了3年的JAVA程序员应该具备什么技能?(转)

    工作了3年的JAVA程序员应该具备什么技能? 因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章.这篇文章大部分内容都是面向整个程序员群体的,当然因为LZ本身是做Java开发 ...

随机推荐

  1. Ansible 远程服务器连接 Internet 测试

    Email 连接: lonnyliu@126.com 需求 在使用Ansible过程中不可避免需要了解远端服务器是否能够联通外网,以便进行在线安装软件或者其他.对于运维人员来说普遍的办法有 1. 登录 ...

  2. 面试题之----禁掉cookie的session使用方案

    方式一:通过 url 传值,把session id附加到url上 缺点:整个站点中不能有纯静态页面,因为纯静态页面session id 将无法继续传到下一页面 方式二:通过隐藏表单,把session ...

  3. table标签用法

    <table>标签 HTML中表格由 <table> 标签来定义. 每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由 <td> ...

  4. 3. 懂了这些,方敢在简历上说会用Jackson写JSON

    你必须非常努力,才能看起来毫不费力.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众 ...

  5. SQL数据库优化总结

    1.在表中建立索引优先考虑 where.group by使用到的数据. 2.查询的sql语句中不要使用select * ,因为会返回许多无用的字段降低查询的效率,应该使用具体的字段代替*,只返回使用到 ...

  6. Linux中配置端口转发(反向代理)

    在conf.d目录下建一个文件, 以conf为结尾(如果没有conf.d目录,就自己新建一个) server { listen 80; server_name 127.0.0.1; #这个IP是你服务 ...

  7. 03_Linux定制篇

    第十四章 JAVAEE定制篇 搭建JAVAEE环境 14.1 安装JDK 1)先将软件通过xftp5上传到/opt下 2)解压缩到/opt 3)配置环境变量的配置文件vim/etc/profile J ...

  8. PHP range() 函数

    实例 创建一个包含从 "0" 到 "5" 之间的元素的数组: <?php$number = range(0,5);print_r ($number);?& ...

  9. day5.流程控制及while单项循环

    一.判断类型 isinstance 1.语法 """ 语法: # 用法一 isinstance(要判断的值,要判断的类型) 返回True 或者 False # 用法二 i ...

  10. 【FZYZOJ】数论课堂 题解(约数个数定理)

    前言:想了两个小时orz,最后才想到要用约数个数定理…… ------------- 题目大意: 给定$n,q,A[1],A[2],A[3]$ 现有$A[i]=(A[i-1]+A[i-2]+A[i-3 ...