强引用
- 最普遍的引用:User user = new User();
- jvm宁可抛出OutOfMemoryErrorr终止程序,也不会回收具有强引用的对象。(这句话很重要,请记住,对后面垃圾回收理那些对象解有帮助)
- 可以通过将对象设置为null来弱化引用,使其回收
软引用
- 当内存空间不足时候,GC才会回收该引用对象的内存
- 可以用来实现高速缓存
弱引用
1.GC时候会被回收,不管内存空间是否充足
2.适用于偶尔被使用且不影响垃圾收集的对象
虚引用
1.任何时候都有可能被垃圾回收
最后来一张总结图: