SoftReference,WeakReference和PhantomReference的区别??! 参考http://www.java-cn.com/technology/technology_detail.jsp?id=2903 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SoftReference 类 SoftReference 类的一个典型用途就是用于内存敏感的高速缓存。SoftReference 的原理是:在保持对对象的引用时保证在 JVM 报告内存不足情况之前将清除所有的软引用。关键之 ~~~~~~处在于,垃圾收集器在运行时可能会(也可能不会)释放软可及对象。对象是否被释放取决~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~于垃圾收集器的算法以及垃圾收集器运行时可用的内存数量。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~WeakReference 类 WeakReference 类的一个典型用途就是规范化映射(canonicalized mapping)。另外,对于那些生存期相对较长而且重新创建的开销也不高的对象来说,弱引用也比较有用。关键之处 ~~~~~~~~在于,垃圾收集器运行时如果碰到了弱可及对象,将释放 WeakReference 引用的对象。然~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~而,请注意,垃圾收集器可能要运行多次才能找到并释放弱可及对象。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~PhantomReference 类 PhantomReference 类只能用于跟踪对被引用对象即将进行的收集。同样,它还能用于执行 pre-mortem 清除操作。PhantomReference 必须与 ReferenceQueue 类一起使用。需要 ReferenceQueue 是因为它能够充当通知机制。当垃圾收集器确定了某个对象是虚可及对象时,PhantomReference 对象就被放在它的 ReferenceQueue 上。将 PhantomReference 对象放在 ReferenceQueue 上也就是一个通知,表明 PhantomReference 对象引用的对象已经结 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~束,可供收集了。这使您能够刚好在对象占用的内存被回收之前采取行动。 ~~~~~~~~~~~~~~~---------------------------------------------------------------------------------谁能告诉我那两个“关键之处”的区别?还有,ReferenceQueue由通知的时候, PhantomReference引用的对象应该已经被收集了,怎么还有“可供收集了”的说法??这篇文章疑点太多,不知道是作者的错,还是译者的错。 http://www.java-cn.com/technology/technology_detail.jsp?id=2903 xsd简单元素的申明 struts2得问题 List无法加新的对象 高分求救!resultset statement的问题。 怎么实现动态参数提交? 返回值的问题 please:能回答的请大家多多指教!! j2ee开发必备资料盘! tomcat集成apache 找不到servlet? 请问哪里有j2ee帮助文档下载? 紧急求助(java scrip + access) hibernate简单问题
SoftReference 类的一个典型用途就是用于内存敏感的高速缓存。SoftReference 的原理是:在保持对对象的引用时保证在 JVM 报告内存不足情况之前将清除所有的软引用。关键之
~~~~~~
处在于,垃圾收集器在运行时可能会(也可能不会)释放软可及对象。对象是否被释放取决
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
于垃圾收集器的算法以及垃圾收集器运行时可用的内存数量。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~WeakReference 类
WeakReference 类的一个典型用途就是规范化映射(canonicalized mapping)。另外,对于那些生存期相对较长而且重新创建的开销也不高的对象来说,弱引用也比较有用。关键之处
~~~~~~~~
在于,垃圾收集器运行时如果碰到了弱可及对象,将释放 WeakReference 引用的对象。然
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
而,请注意,垃圾收集器可能要运行多次才能找到并释放弱可及对象。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~PhantomReference 类
PhantomReference 类只能用于跟踪对被引用对象即将进行的收集。同样,它还能用于执行 pre-mortem 清除操作。PhantomReference 必须与 ReferenceQueue 类一起使用。需要 ReferenceQueue 是因为它能够充当通知机制。当垃圾收集器确定了某个对象是虚可及对象时,PhantomReference 对象就被放在它的 ReferenceQueue 上。将 PhantomReference 对象放在 ReferenceQueue 上也就是一个通知,表明 PhantomReference 对象引用的对象已经结
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
束,可供收集了。这使您能够刚好在对象占用的内存被回收之前采取行动。
~~~~~~~~~~~~~~~
---------------------------------------------------------------------------------
谁能告诉我那两个“关键之处”的区别?还有,ReferenceQueue由通知的时候, PhantomReference引用的对象应该已经被收集了,怎么还有“可供收集了”的说法??
这篇文章疑点太多,不知道是作者的错,还是译者的错。