易截截图软件、单文件、免安装、纯绿色、仅160KB

JAVA回调机制(转)

java回调机制:
软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。
同步调用是一种阻塞式调用,调用 方要等待对方执行完毕才返回,它是一种单向调用;
回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;
异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。回调和异步调用的关系非常紧密,通常我们使用回调来实现异步消息的注册,通过异步调用来实现消息的通知。
这是搜索的一点比较枯燥的理论解释了,算是红体部分让我稍微明白了一点是怎么个回事,然后又看到一个例子,又让我明白不少。
看看在JAVA里的例子:
public class Test{
   public static void main(String[] args){
     FooBar foo=new FooBar();
/**注意下面的这项代码片段,它给foo对象传递了一个实现ICallBack接口的匿名类,这样FooBar类的对象就取
得了一个实现接口的类,因此FooBar可以在任何时候调用接口中的方法*/
     foo.setCallBack(new ICallBack(){
     public void postExec(){System.out.println("我(postExec)是在Test类中实现的,但我不能被Test的对象引用,"+
     "而由FooBar对象调用");}
     });
   }
}
public interface ICallBack(){
void postExec();
}
public class FooBar..{
private ICallBack callBack;
public void setCallBack(ICallBack callBack){
    this.callBack=callBack;
}
/*我没有实现接口,但是我取得了一个实现接口的对象,而这个对象是其他类调用我的方法( setCallBack ())
时所赋给我的,因此我可以在业务需要的地方来调用实现接口的类里面的方法*/
public void doSth(){
     ....
     callBack.postExec();
}
..
}
上述两个类的描述:
1.class   A,class   B  
2.class   A实现接口ICallBack  
3.class   B拥有一个参数为ICallBack接口类型的函数setCallBack(ICallBack   o)  
4.class   A运行时调用class   B中set


相关文档:

Java堆的管理 垃圾回收


作者:刘学超
作者简介
刘学超,华中师范大学计算机科学系网络与通讯研究所,你可以通过shuechao_lau@hotmail.com与他联系。
1  引言
Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new、newarray、anewarray和multiane ......

java集合框架图及介绍


java集合框架图及介绍
简化图:
Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。
Java 2集合框架图
集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。
抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。 ......

【Java】休息提醒小程序

不能好高骛远,从写小程序开始。
一个没隔N分钟就提醒休息一下的小程序,嗯,还只是一个挺简陋的东西,而且还发现一点现在我无法解决的bug。
/**
* 休息提醒小程序
* 存在问题是:单击时(不分左击右击),同时会在任务栏出现程序(因为这个托盘功能是参考网上例程
* 写的,不知道该如何避免这个问题);
* 如 ......

深入学习JAVA WEB开发时扎实掌握JAVA基础的重要性

以前在家听张孝祥老师的视频时,屡次听到张老师讲到掌握JAVA基础对于我们要来传智参加就业培训要学习的新课程的重要.现在看来,这些话真的一点都不为过!有些同学或许没有深刻认识张老师说的这番话,自己平时动手又太少.就拿现在学的就业培训班的课程来说,JAVA开发用的工具像MYECLIPSE等,其使用真的是让人感到惊喜,以前张老师在 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号