强引用 StrongReference
只要某个对象有强引用与之关联,JVM必定不会回收这个对象,即使在内存不足的情况下,JVM宁愿抛出OutOfMemory错误也不会回收这种对象
若需要 jvm 回收此对象,可以将对象复制为 null
Object o = new Object(); // 强引用
o = null; // 帮助垃圾收集器回收此对象
但是如果这个o是全局的变量时,就需要在不用这个对象时赋值为null,因为强引用不会被垃圾回收。
软引用 SoftReference
对于软引用关联着的对象,只有在内存不足的时候JVM才会回收该对象。
因此,这一点可以很好地用来解决OOM的问题,并且这个特性很适合用来实现缓存:比如网页缓存、图片缓存等。
弱引用 WeakReference
当JVM进行垃圾回收时,无论内存是否充足,都会回收被弱引用关联的对象
虚引用 PhantomReference
如果一个对象与虚引用关联,则跟没有引用与之关联一样,在任何时候都可能被垃圾回收器回收。
参考
http://www.cnblogs.com/dolphin0520/p/3784171.html
http://blog.csdn.net/mazhimazh/article/details/19752475