大家都知道java的引用分为强引用(Strong reference)、弱应用(Weak reference)和软应用(Soft reference),其实还有第四个引用叫幽灵应用(Phantom Reference)。
这四种引用被GC回收的回收机制分别如下:
1、强引用,当一个对象不被系统中任何其他对象引用时可以被GC回收。
2、弱引用,当系统内存不足时首先回收该引用的的对象,也就是说当GC要工作时先扫描系统中是弱引用的对象,扫描到即可清理(Clean)。
3、软引用,当GC回收完系统中的弱应用对象后,发现内存还是不够用,这时会扫描系统中的软引用对象,扫描到即可清理。
4、最后一个引用唯一的作用就是就是当相应的Object被Clean掉的时候,通知JVM(参考http://blog.csdn.net/weihan1314/article/details/9156695)。