强引用:使用最普遍的引用,如果一个对象具有强引用,垃圾回收器绝不会回收它

软引用:如果一个对象只具有软引用,内存空间足够的话垃圾回收器就不会回收它,如果内存空间不足了就会回收它。只要没有被回收,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。软引用可以和一个引用队列联合使用,如果软引用所引用的对象被垃圾回收器回收,Java虚拟机就会把它加入到与之关联的引用队列中。

弱引用:只具有弱引用的对象拥有更短暂的生命周期。在垃圾回收器线程扫描它所管辖的内存区域过程中,一旦发现了只具有弱引用的对象,就会回收它的内存。

虚引用:就是形同虚设,虚引用并不会决定对象的生命周期。如果一个对象仅持有虚引用,那么它就和没任何引用一样,在任何时候都可能被垃圾回收器回收。