java的回调技术浅谈
我们经常会用System.currentTimeMillis()在事件开始前和结束后设置一个开始时间和结束时间,用他们的差作为程序执行的时间。
我们不妨定义一个接口用java回调来实现动态计算。
接口定义:
package com.hd123.h5.ejb.verctrl;
public interface CallBack {
public void callBack();
}
然后是实现这个接口
package com.hd123.h5.ejb.verctrl;
public class Run {
//由于接口中的 callBack方法是没有定义的,所以用一个接口对象执行callBack()方法,其实是未知的,我们具体需要实现的方法
//可以通过callBack(),这个方法的不同实现来实现动态计时。
private void run(CallBack callBack, String event) {
long startTime = System.currentTimeMillis();
callBack.callBack();
long endTime = System.currentTimeMillis();
System.out.print("执行" + event + "共消耗" + (endTime - startTime) + "ms");
}
public static void main(String[] args) {
Run r=new Run();
//这里动态的实现callBack方法。
r.run(new CallBack(){
public void callBack() {
for(int i=0;i<999;i++){
for(int j=i+1;j<99999;j++){
}
}
}
}, "循环");
}
}
相关文档:
Java NIO API详解
在JDK
1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方
便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO
API作为一个基于缓冲区,并能提供非阻塞(non-blo ......
1. Java保存的文件名必须与类名一致;
2. 如果文件中只有一个类,文件名必须与类名一致;
3. 一个Java文件中只能有一个public类;
4. 如果文件中不止一个类,文件 ......
作为一个跨平台的编程解决方案,Java显然不能像Delphi那样,在用户界面设计方面提供强大、直观和快捷的设计支持。比如对于文本框的控制,当我们 要在程序中感知用户是否修改了文本框中的内容时,Delphi提供了一个直接的事件调用OnValueChanged(),可以在文本框内容得到实际的改 动时被激活。而要在Java中实现这一功能就似乎 ......
Map map = new HashMap();
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
Object key = entry.getKey();
Object value = entry.getValue();
}
......