java的引用类型
引用类型
无论是通过引用计数算法判断对象的引用数量,还是通过可达性分析算法判断对象是否可达,判断对象是否可被回收都与引用有关。
Java提供了四种强度不同的引用类型。
强引用
被强引用关联的对象不会被回收。
使用new一个新对象的方式来创建强引用。
软引用
被软引用关联的对象只有在内存不够的情况下才会被回收。
使用SoftReference类来创建软引用。
弱引用
被弱引用的对象一定会被回收,也就是说它只能存活到下一次垃圾回收发生之前。
使用WeakReference类来创建弱引用
虚引用
又称为幽灵引用或者幻影引用,一个对象是否是虚引用的存在,不会对其生存时间造成影响,也无法通过虚引用得到一个对象。
为一个对象设置虚引用的唯一目的是能在这个对象被回收时收到一个系统通知。
使用PhantomReference来创建虚引用。