CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  框架、开源

SoftReference,WeakReference和PhantomReference的区别??!

楼主luohualiushui(落花流水)2004-09-01 17:39:35 在 Java / 框架、开源 提问

还有,就是他们和ReferenceQueue的关系  
   
  Thinking   in   Java讲的不清楚  
   
  哪位大虾在给我说说,一百分答谢! 问题点数:0、回复次数:9Top

1 楼ntzls()回复于 2004-09-01 18:55:17 得分 0

参考  
  http://www.java-cn.com/technology/technology_detail.jsp?id=2903Top

2 楼wanglin824(大象跳舞)回复于 2004-09-02 01:09:34 得分 0

关注。。。Top

3 楼luohualiushui(落花流水)回复于 2004-09-03 20:26:53 得分 0

SoftReference   类    
  SoftReference   类的一个典型用途就是用于内存敏感的高速缓存。SoftReference   的原理是:在保持对对象的引用时保证在   JVM   报告内存不足情况之前将清除所有的软引用。关键之  
                                                                                                                                                        ~~~~~~  
  处在于,垃圾收集器在运行时可能会(也可能不会)释放软可及对象。对象是否被释放取决  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  于垃圾收集器的算法以及垃圾收集器运行时可用的内存数量。    
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
   
  WeakReference   类    
  WeakReference   类的一个典型用途就是规范化映射(canonicalized   mapping)。另外,对于那些生存期相对较长而且重新创建的开销也不高的对象来说,弱引用也比较有用。关键之处  
                                                                                                                                                  ~~~~~~~~  
  在于,垃圾收集器运行时如果碰到了弱可及对象,将释放   WeakReference   引用的对象。然  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  而,请注意,垃圾收集器可能要运行多次才能找到并释放弱可及对象。    
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
   
  PhantomReference   类    
  PhantomReference   类只能用于跟踪对被引用对象即将进行的收集。同样,它还能用于执行   pre-mortem   清除操作。PhantomReference   必须与   ReferenceQueue   类一起使用。需要   ReferenceQueue   是因为它能够充当通知机制。当垃圾收集器确定了某个对象是虚可及对象时,PhantomReference   对象就被放在它的   ReferenceQueue   上。将   PhantomReference   对象放在   ReferenceQueue   上也就是一个通知,表明   PhantomReference   对象引用的对象已经结  
                                                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  束,可供收集了。这使您能够刚好在对象占用的内存被回收之前采取行动。    
  ~~~~~~~~~~~~~~~  
  ---------------------------------------------------------------------------------  
  谁能告诉我那两个“关键之处”的区别?还有,ReferenceQueue由通知的时候,   PhantomReference引用的对象应该已经被收集了,怎么还有“可供收集了”的说法??  
  这篇文章疑点太多,不知道是作者的错,还是译者的错。Top

4 楼pfc001(pfc001)回复于 2004-09-03 21:05:06 得分 0

http://www.java-cn.com/technology/technology_detail.jsp?id=2903  
  Top

5 楼luohualiushui(落花流水)回复于 2004-09-04 20:28:11 得分 0

up  
  Top

6 楼luohualiushui(落花流水)回复于 2004-09-06 22:38:45 得分 0

upTop

7 楼delphi2java(delphi2java)回复于 2004-09-07 00:36:09 得分 0

gzTop

8 楼mylzw(芃)回复于 2005-04-23 17:12:45 得分 0

我也不是太清楚啊!  
   
  觉得引用类就是个不可靠的家伙。  
   
  弄不好就没影了~,在用它所持有的对象前需要先检测,如果它被回收,则新建一个。Top

9 楼mylzw(芃)回复于 2005-04-23 17:13:14 得分 0

我也不是太清楚啊!  
   
  觉得引用类就是个不可靠的家伙。  
   
  弄不好就没影了~,在用它所持有的对象前需要先检测,如果它被回收,则新建一个。Top

相关问题

  • 一道面试题,弱引用(weakReference)和softReference有什么区别?
  • 区别
  • 区别?
  • 区别?
  • 区别?
  • 区别?!
  • 区别??
  • 区别在那?
  • .与->的区别
  • -> 和 . 的区别?

关键词

  • 垃圾
  • 内存
  • phantomreference
  • 对象
  • 引用
  • weakreference
  • softreference
  • referencequeue
  • 垃圾收集器
  • 运行

得分解答快速导航

  • 帖主:luohualiushui

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo