java的一些问题,请高手做答,谢谢 可以。自己写一个监听类。可以参考jdk原码他里面已经有个Event接口。你可以继承它。。参考设计模式adaptor。synchronized 是一个线程同步加锁的问题。。详细你可参考thinking in java 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 都可以实现哦,第一个一般是继承已有的东西,第二个我觉得自己编程控制jvm的synchronized机制好象不可以吧,用它提供的东西就够用了,除非你想自己实现一个JVM个人看法,等待高手指点 编写自定义事件的步骤:1,编写自定义事件类,比如NameChangedEvent2,编写自定义事件监听器,比如NameChangedListener,一般它有一个事件响应方法,比如下面这个actionWhenNameChanged:public interface NameChangedListener{public void actionWhenNameChanged(NameChangedEvent e);}3,在事件源维护事件监听器列表,当Name确实改变时,触发NameChangedEvent(实际上就是遍历该列表,顺序执行列表中每个NameChangedListener对象的actionWhenNameChanged方法)。下面是一个事件源的例子:public class Company{String name;List actionListenerList;public void addNameChangedListener(NameChangedListener l){ actionListenerList.add(l);}public void setName(String name){ if(name != this.name){ this.name = name;fireNameChangedEvent(new NameChangedEvent(this,name,this.name)) //NameChangedEvent的构造函数你可以根据需要传入不同的参数。 }}protect void firedNameChangedEvent(NameChangedEvent e){//在这里遍历actionListenerList,顺序执行里面每个NameChangedListener的actionWhenNameChanged方法,这是事件传播的关键所在,在这里可以利用线程,实现异步事件派发。}}关于synchronized的jvm机制,本人也不太清楚,但我想自己编程来控制同步好像没有必要,java sychronized机制存在的固有缺陷很少会给我们带来影响。关于java sychronized的问题,可以参看Singleton 模式中的“double lock”手段。总的讲,java synchronized在大多数时候能很好的保证线程间的同步。 java 短信猫 Failed to setAutoCommit to true for pool connection 远光软件 throws的问题 如何用java代码设置IE的代理服务 两个不明白?谢谢!! java读取excel文件的问题 uml 送分: 关于rose 关于编译的简单问题,请帮忙 还是关于执行exp80的问题 得分的简单问题,文件扩展名... 编写一个程序,以确定给定字符是否为中文字符
public interface NameChangedListener{
public void actionWhenNameChanged(NameChangedEvent e);
}3,在事件源维护事件监听器列表,当Name确实改变时,触发NameChangedEvent(实际上就是遍历该列表,顺序执行列表中每个NameChangedListener对象的actionWhenNameChanged方法)。
下面是一个事件源的例子:public class Company{
String name;List actionListenerList;public void addNameChangedListener(NameChangedListener l){
actionListenerList.add(l);
}public void setName(String name){
if(name != this.name){
this.name = name;
fireNameChangedEvent(new NameChangedEvent(this,name,this.name)) //NameChangedEvent的构造函数你可以根据需要传入不同的参数。
}
}protect void firedNameChangedEvent(NameChangedEvent e){
//在这里遍历actionListenerList,顺序执行里面每个NameChangedListener的actionWhenNameChanged方法,这是事件传播的关键所在,在这里可以利用线程,实现异步事件派发。
}}关于synchronized的jvm机制,本人也不太清楚,但我想自己编程来控制同步好像没有必要,java sychronized机制存在的固有缺陷很少会给我们带来影响。关于java sychronized的问题,可以参看Singleton 模式中的“double lock”手段。总的讲,java synchronized在大多数时候能很好的保证线程间的同步。