浅析Java引用:强引用 软引用 弱引用 虚引用

1.强引用(Strong Reference):强引用是指代码之中普遍存在的,如:

Object obj = new Object();

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

2.软引用(Soft Reference):如果一个对象是软引用,在内存空间充足的情况下不会被回收,但是如果内存不够,就会被垃圾回收器回收。

String str = new String("hello");//强引用
SoftReference<String> strRef = new SoftReference<String>(str);//软引用

软引用可以用来实现高速缓存(如浏览器缓存)

3.弱引用(Weak Reference): 当垃圾回收器要回收时,弱引用对象一定会被回收。

String str = new String("hello");
WeakReference<String> strRef = new WeakReference<String>(str);

如果这个对象是偶尔的使用,并且希望在使用时随时就能获取到,但又不想影响此对象的垃圾收集,那么你应该用 Weak Reference来记住此对象。

4.虚引用(Phantom Reference): 虚引用随时随地有可能被回收, 虚引用一般都是要跟ReferenceQueue一起使用,当虚引用对象被回收的时候会被放入引用队列中

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值