java中的强引用、软引用、弱引用、虚引用

强引用

  1. 最普遍的引用:User user = new User();
  2. jvm宁可抛出OutOfMemoryErrorr终止程序,也不会回收具有强引用的对象。(这句话很重要,请记住,对后面垃圾回收理那些对象解有帮助)
  3. 可以通过将对象设置为null来弱化引用,使其回收

软引用

  1. 当内存空间不足时候,GC才会回收该引用对象的内存
  2. 可以用来实现高速缓存
    java中的强引用、软引用、弱引用、虚引用

弱引用

1.GC时候会被回收,不管内存空间是否充足
2.适用于偶尔被使用且不影响垃圾收集的对象
java中的强引用、软引用、弱引用、虚引用

虚引用

1.任何时候都有可能被垃圾回收
java中的强引用、软引用、弱引用、虚引用
最后来一张总结图:
java中的强引用、软引用、弱引用、虚引用