网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.一个浏览图片程序.
.Struts 系列之二 ------- Struts.
.使用Javap获得不止于文档的东西.
.巧用MySQL log调试程序.
.jboss配置 mysql数据库连接.
.教您如何成为 EJB 专家详解系列连.
.Java、XML与数据库编程实践 (四).
.Tomcat+Mysql入门实例:滚动横幅广.
.J2EE全面简介.
.[JAVA100例]064、线程间通讯.
.Java的表达式.
.用 WebSphere Studio 创建 JSF 提.
.Rational Rose 2001安装手册.
.从零开始学 Java (一) Hello W.
.Java变量的赋值.
.java中实现IP地址的各种表现形式.
..NET真的战胜了J2EE吗?.
.J2EE初学者需要理解的问题.
.跟我学Java Swing之游戏设计(3).
.学Java请不要做浮躁的人.

使用StopWatch类来计时

发表日期:2008-1-5



  使用StopWatch类来计时

作者: BUILDER.COM

调试器是一个繁重的东西,使用调试器并不总是最有效的方法;有时,你可能想对代码进行一些小的调试和跟踪。一个简单的StopWatch类就是提供了一种好的计时解决方案。

package com.generationJava.test;

/**

* 在调试或者测试情形下需要计时非常有用*/

public class StopWatch {

static public int AN_HOUR = 60 * 60 * 1000;

static public int A_MINUTE = 60 * 1000;

;private long startTime = -1;

private long stopTime = -1;

/**

;* 启动秒表

*/

public void start() {

this.startTime =System.currentTimeMillis();

}

/**

* 停止秒表

*/

public void stop() {

this.stopTime =System.currentTimeMillis();

}

/**

* 重置秒表

*/

public void reset() {

this.startTime = -1;

this.stopTime = -1;

}

/**

* 分割时间

*/

public void split() {

this.stopTime =System.currentTimeMillis();

}

/**

* 移除分割

*/

public void unsplit() {

this.stopTime = -1;

}

/**

* 获得秒表的时间,这个时间或者是启动时和最后一个分割时刻的时间差,

* 或者是启动时和停止时的时间差,或者是启动时和这个方法被调用时的差

*/

public long getTime() {

if(stopTime != -1) {

return(System.currentTimeMillis() - this.startTime);

} else {

return this.stopTime - this.startTime;

}

}

public String toString() {

return getTimeString();

}

/**

* 取得String类型的时间差

* 形式为小时,分钟,秒和毫秒

;*/

public String getTimeString() {

int hours, minutes, seconds,milliseconds;

long time = getTime();

hours = (int) (time / AN_HOUR);

time = time - (hours *AN_HOUR);

minutes = (int) (time /

A_MINUTE);

time = time - (minutes *A_MINUTE);

seconds = (int) (time / 1000);

time = time - (seconds * 1000);

milliseconds = (int) time;

return hours + "h:" +minutes + "m:"_

+ seconds + "s:" + milliseconds +

}

与大块的代码相比,它是非常简单的。但是它可重用而毫不复杂。因此StopWatch类的使用也是非常简单的:

StopWatch obj = new StopWatch();

obj.start();

try {

Thread.currentThread().sleep(1500);

} catch(InterruptedException ie) {

// ignore

}

obj.stop();

System.out.println(obj);

我们执行了1500豪秒sleep,完全在预料之中的,StopWatch的报告为:

0h:0m:1s:502ms

StopWatch不是深奥复杂的科学,但是它确实满足了常见的测量代码行间执行时间的需求。
上一篇:使用String还是StringBuffer? 人气:758
下一篇:使用模仿对象进行单元测试 人气:684
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐