强引用直接通过new的方式创建引用类型只要有对象只想该引用并且GC roots可达java内存回收时即使内存耗尽也不会回收该对象
软引用 即Soft Reference引用弱于强引用 是用在非必需对象的场景在即将OOM之前垃圾回收器垃圾回收器这些软引用指向的对象加入回收范围已获得更多的内存空间
弱引用 Weak Reference 引用较前两者更弱如果弱引用指向的对象这一条线路则会在下一次YGC时候被回收
弱引用主要指向某个易消失的对象在强引用断开后此引用不会劫持对象
虚引用 Phantom Reference 是一种极弱的引用关系定义完成后就无法通过该引用获取指向对象为一个对象设置虚引用的目的就是这个对象被回收的时候一个系统通知虚引用必须和引用队列一期使用当垃圾回收发现时候就会在垃圾回收之前把这个虚引用加入与之关联的引用队列中