Thinking in java 上提到了Reference这个抽象类,其下有三个子类:
SoftReference,WeakReference,PhantomReference.
前两个看了"Java 2 引用类使用指南"这篇文章后,基本上了解它们的应用时机了.
唯有第三个PhantomReference这个类,不知道什么情况下会用到.
望高手赐教~~~

解决方案 »

  1.   

    厉害。
    SoftReference,WeakReference,PhantomReference
    都介绍一下吧
      

  2.   

    关于对引用类概述:
         引用类所持有的对象随时可被垃圾回收器回收。所以,在使用它们的持有对象前需要先检测
         其对象是否存在。若已被回收,则新建一个。
         另外,请不要让强引用去引用这个对象,那样的话该对象将不会被自动回收。
         根据被回收的条件分为:
         1.SoftReference(内存资源紧缺时被释放)
         2.WeakReference(内存资源紧缺,或垃圾回收机制启动时被释放)
         3.PhantomReference (这个类很特殊,它只关心所持有的对象是否已被回收,若被回收则将对象放入队列中。
                             所以,你可以在对象被回收前做些动作。)
         总而言之,引用类充当了“废纸篓”的角色。当你不需要一个对象时,你可以将它放入引用类中
         然后将持有这个对象的强引用设置为null. 如果下一刻你反悔了,想再找回这个对象,可以先看看
         引用类中是否还存在这个对象,如果你运气很好,它还在那里,那么你还可以接着用它。否则,
         你就只能新建一个了
         总之,引用类给了你一个可以再次找回被抛弃了的对象的机会!以上理解,望大家指正!
    对于PhantomReference这个类,还是有点模糊。
    它和finalize所起的效果不是一样么?