Java的四种引用类型

在Java中有四种引用类型,他们是:强引用(Strong Reference),软引用(Soft Reference),弱引用(Weak Reference) 和 虚引用(Phantom Reference)。

一.四种引用类型的解释:

  • JVM会持有一般对象直到他们不再是可触及的状态。换句话说,当没有任何有效引用指向他们的时候会被垃圾回收,无效引用不会被计算在内。
  • 软引用指向的对象会在不存在任何指向他们的引用并且内存空间不足情况下被垃圾收集。大多数情况下被用来实现内存敏感的缓存。没有GC的时间限制,会在OOM发生之前清理完毕。
  • 弱引用指向的对象会在没有任何引用指向他们的时候立即被垃圾收集。如果一个对象只有弱引用的话,那么这个对象是不可触及的。这些对象会在任何时候被垃圾收集并且会在下一个GC周期里被丢弃。
  • 虚引用指向的是已经执行finalize方法,但是还没有回收内存的对象。
二.四种引用类型的比较:

类型目的作用触发GC条件实现类
强引用普通引用类型,只要对象的引用是强引用,他们就不会被垃圾收集普通引用任何对象如果不是强引用都可以被垃圾收集默认类型
软引用在内存足够的时候,对象不会被垃圾收集为了保证即使对象没有任何引用指向它的时候也不会被垃圾收集,防止有引用再次指向这个对象在第一次GC后,JVM需要回收更多的空间java.lang.ref.SoftReference
弱引用在对象可触及的状态下不会被垃圾收集如果对象不再被引用会被自动回收GC后对象只有弱引用java.lang.ref.WeakReference
java.util.WeakHashMap
虚引用让你可以清理已经执行finalize方法,但是还没有回收内存的对象特殊清理finalize方法执行之后java.lang.ref.PhantomReference


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值