Java的引用类型分为强、软、弱、虚四种类型,这四种类型在垃圾回收时表现出不一样的特点。下面就简单的就这几个引用类型进行说明:
强引用:JVM宁愿发生内存溢出也不会将其回收。
软引用:只有在内存不足时才会回收这部分引用对象。
弱引用:只要系统发生GC(垃圾收集),弱引用的对象一定会被回收。
软引用与弱引用一般用来保存可有可无的缓存数据。
虚引用:即使引用对象还在,使用get方法仍然返回null。主要用于跟踪对象。
弱引用的应用:WeakHashMap:如果系统需要一张很大的哈希表用于保存缓存数据,同时即使没有从表中得到数据也没有关系,系统可以在内存不足时回收表中的某些数据,所以WeakHashMap特别适合使用弱引用。