强引用、软引用、弱引用、幻象引用有什么区别

1.强引用:正常使用过程中创建的对象一般都为强引用,强引用不会被JVM回收,即使触发OOM,也不会回收强引用的对象;当显式的将强引用的对象赋值为null的时候,JVM会在某个时间回收该对象;

 

2.软引用(SoftReference):在Java中用java.lang.ref.SoftReference类来表示,JVM会在内存快要溢出时回收;

 

3.弱引用(WeakReference):在Java中用java.lang.ref.WeakReference类来表示,无论JVM内存是否充足,弱引用对象都有可能被回收;

 

4.虚引用(PhantomReference):在Java中用java.lang.ref.PhantomReference类来表示,有的时候也称为幻象引用,不影响对象的生命周期,必须和引用队列关联使用,在任何时候都有可能被回收;

posted @ 2019-05-29 10:20  夜1羽  阅读(557)  评论(0编辑  收藏  举报