强引用
普通的变量引用
public static User user = new User();
软引用
将对象用SoftReference软引用类型的对象包裹,正常情况不会被回收,但是GC做完后发现释放不出空间存放新的对象,则会把这些软引用的对象回收掉。软引用可用来实现内存敏感的高速缓存。
适用场景:这些对象即使被GC回收也没关系,大不了重新生成。适用于缓存。
public static SoftReference<User> user = new SoftReference<User>(new User());
弱引用
将对象用WeakReference软引用类型的对象包裹,弱引用跟没引用差不多,GC会直接回收掉,很少用
public static WeakReference<User> user = new WeakReference<User>(new User());
虚引用
虚引用也称为幽灵引用或者幻影引用,它是最弱的一种引用关系,几乎不用