java的4种引用类型

StrongReference(强引用)

写法:Test test = new Test()
这是最常见的引用类型,也是最牢固的引用类型,当jvm发生gc时,对象被引用不会被gc回收,jvm内存满了将要发生OOM(out of memory)的时候,强引用类型也不会被回收

SoftReference(软引用)

写法:SoftReference<String> softReference = new SoftReference<>(new String("Hello World"));
较强引用来说,软引用在发生gc时,被引用的对象不会被回收,当内存满时,将要发生OOM时,gc会回收软引用的对象

WeakReference(弱引用)

写法:WeakReference<String> weakReference = new WeakReference<>(new String("Hello World"));
弱引用在发生gc时,就会被gc回收,不管内存用了多少,弱引用最长的生命周期是两次gc的间隔时间

PhantomReference(虚引用,幻引用)

写法:ReferenceQueue<String> referenceQueue = new ReferenceQueue<>();
PhantomReference<String> phantomReference = new PhantomReference<>(new String("Hello World"), referenceQueue);

虚引用和上面两种引用有一点点小区别,多了一个依赖队列。虚引用并不会决定对象的生命周期,有他没他都一个样,无法通过虚引用获取对象。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊狸的Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值