强引用(StrongReference)
当一个对象被一个或一个以上的引用变量所引用时,它处于可达状态,不会被垃圾回收机制回收。
软引用(SoftReference)
软引用需要通过SoftReference类实现,一个类只有软引用时,如果系统内存充足,那么它不会被回收,反之,则有可能被回收。
弱引用(WeakReference)
在垃圾回收机制运行时,不管系统空间是否足够,弱引用对象都会被回收。
虚引用(PhantomReference)
虚引用类似于完全没有引用,虚引用对引用对象没有任何影响,虚引用主要用来跟踪对象被垃圾回收的状态。
虚引用不能单独使用,必须和引用队列(ReferenceQueue)联合使用。
垃圾回收器回收一个对象时,如果发现它有虚引用,就会在回收对象前将这个虚引用加入ReferenceQueue中。