Java中对象的强、软、弱和虚引用 - 编程入门网
;
SoftReference ref=new SoftReference(aMyObject, queue);
那么当这个SoftReference所软引用的aMyOhject被垃圾收集器 回收的同时,ref所强引用的SoftReference对象被列入 ReferenceQueue。也就是说,ReferenceQueue中保存的对象是 Reference对象,而且是已经失去了它所软引用的对象的Reference 对象。另外从ReferenceQueue这个名字也可以看出,它是一个队列 ,当我们调用它的poll()方法的时候,如果这个队列中不是空队列 ,那么将返回队列前面的那个Reference对象。 在任何时候,我们都可以调用ReferenceQueue的poll()方法来 检查是否有它所关心的非强可及对象被回收。如果队列为空,将返 回一个null,否则该方法返回队列中前面的一个Reference对象。利 用这个方法,我们可以检查哪个SoftReference所软引用的对象已 经被回收。于是我们可以把这些失去所软引用的对象的 SoftReference对象清除掉。常用的方式为:
理解了ReferenceQueue的工作机制之后,我们就可以开始构造 一个Java对象的高速缓存器了。 Java中对象的强、软、弱和虚引用(3)时间:2011-03-24 zhangjunhd3.4通过软可及对象重获方法实现Java对象的高速缓存 利用Java2平台垃圾收集机制的特性以及前述的垃圾对象重获方 法,我们通过一个雇员信息查询系统的小例子来说明如何构建一种 高速缓存器来避免重复构建同一个对象带来的性能损失。我们将一 个雇员的档案信息定义为一个Employee类:
这个Employee类的构造方法中我们可以预见,如果每次需要查 询一个雇员的信息。哪怕是几秒中之前刚刚查询过的,都要重新构 建一个实例,这是需要消耗很多时间的。下面是一个对Employee对 象进行缓存的缓存器的定义:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |