关于java.lang.ref里面的类。也就是 
关于对象的强,软,弱,虚引用一般在实际引用中,用在哪些领域啊?

解决方案 »

  1.   

    http://www.computernews.com.cn/Article/2004-10-13/3595.html
      

  2.   

    这是我看书的时候做的笔记,具体怎么用我没用到过,架构师可能用的多点。不知道对您用没有用对象的可触及性:
    可触及状态:刚被创建的对象即处于此状态。
    可复活状态:当程序不再有任何引用变量引用此对象时,就进入可复活状态
    这个状态垃圾回收器准备回收。在释放之前调用finalize()方法;这些对象的finalize()方法可能把对象重新转到可触及状态。
    不可触及状态:当java虚拟机执行完对象的finalize()方法后,对象没有赚到可触及状态,就进入不可触及状态 ,只有对象处于 不可触及状态,垃圾回收器才会真正的回收它占用的内存。
    finalize()方法 的特点:
    垃圾回收器是否会执行该方法和何时执行 都是不确定的。(一个程序占有少量的内存,没有造成严重的内存需求,于是垃圾回收器没有释放那些无用对象占用的内存,因此这些对象的finalize()方法没用调用,程序就终止了)。
    finalize()方法有可能使对象复活,是可恢复到可触及状态
    执行finalize()方法时如果出现异常不会报错,程序继续正常运行强引用(StrongReference)
      最普遍的引用,如果一个对象是强引用,就像是生活中的必备品,垃圾回收器,绝不会去回收他。当java虚拟机抛出OutOfMemoryError,也不会随意回收具有强引用的对象。
    软引用(SoftReference)
      可有可无的。如果内存空间不足了就会回收这些对象
    弱引用(WeakReference)
      也是可有可无的。一旦垃圾回收器检测到时弱引用的对象不管内存是不是足够,直接回收这些对象。
    虚引用(PhantomReference)
     形同虚设的,虚引用不会决定象的生命周期,虚引用主要用来跟踪对象被垃圾回收器回收的活动。虚引用必须和引用队列(ReferenceQueue)联合使用。当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前把这个虚引用加到与之关联的引用队列中。
    可以根据引用队列 是否有虚引用 来了解是对象是否将要被垃圾回收。
      

  3.   

    4楼看的是孙卫琴的java面向对象编程吧