0
点赞
收藏
分享

微信扫一扫

Java - Java 中的四种引用


强引用


Object o = new Object();


只要强引用还存在,垃圾回收器就永远不会回收掉该对象。


软引用


  • 描述有用但是非必需的对象,使用softReference 类来实现
  • 是否回收对象取决于JVM 内存是否充足
  • 可用软引用实现内存敏感的高速缓存

弱引用


  • 描述非必需对象,使用weakReference 来实现
  • 被弱引用关联的对象只能存活到下一次GC

虚引用


最弱的一种引用关系,无法通过一个虚引用获得一个对象实例。一个对象是否有虚引用都不会对其生存周期构成影响。设置虚引用的唯一目的就是在垃圾回收时,收到一个系统通知。



虚引用与 软引用、弱引用的一个区别在于:虚引用必须和引用队列(ReferenceQueue)联合使用。当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会将这个虚引用加入到与之关联的引用队列里,程序可以通过这个引用队列是否加入了虚引用,来判断对象是否要被GC,可根据需求在GC 前采取某些动作。

举报

相关推荐

0 条评论