如何深入理解JAVA中的弱引用及其应用场景?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2000个文字,预计阅读时间需要8分钟。
定义+弱引用是使用WeakReference创建的引用,弱引用也是用来描述非必需对象的。它是比软引用更弱的引用类型。在开发GC时,只需发现弱引用,不管系统堆空间是否充足,都会将对象进行回收。
定义
弱引用是使用WeakReference创建的引用,弱引用也是用来描述非必需对象的,它是比软引用更弱的引用类型。在发生GC时,只要发现弱引用,不管系统堆空间是否足够,都会将对象进行回收。
说明
弱引用,从名字来看就很弱嘛,这种引用指向的对象,一旦在GC时被扫描到,就逃脱不了被回收的命运。
但是,弱引用指向的对象也并不一定就马上会被回收,如果弱引用对象较大,直接进到了老年代,那么就可以苟且偷生到Full GC触发前,所以弱引用对象也可能存在较长的一段时间。一旦一个弱引用对象被垃圾回收器回收,便会加入到一个引用队列中(如果有的话)。
弱引用对应的类为WeakReference,举个栗子:
String s = new String("Frank"); WeakReference<String> weakRef = new WeakReference<String>(s); s = null;
这里我们把s设置为null后,字符串对象便只有弱引用指向它。
本文共计2000个文字,预计阅读时间需要8分钟。
定义+弱引用是使用WeakReference创建的引用,弱引用也是用来描述非必需对象的。它是比软引用更弱的引用类型。在开发GC时,只需发现弱引用,不管系统堆空间是否充足,都会将对象进行回收。
定义
弱引用是使用WeakReference创建的引用,弱引用也是用来描述非必需对象的,它是比软引用更弱的引用类型。在发生GC时,只要发现弱引用,不管系统堆空间是否足够,都会将对象进行回收。
说明
弱引用,从名字来看就很弱嘛,这种引用指向的对象,一旦在GC时被扫描到,就逃脱不了被回收的命运。
但是,弱引用指向的对象也并不一定就马上会被回收,如果弱引用对象较大,直接进到了老年代,那么就可以苟且偷生到Full GC触发前,所以弱引用对象也可能存在较长的一段时间。一旦一个弱引用对象被垃圾回收器回收,便会加入到一个引用队列中(如果有的话)。
弱引用对应的类为WeakReference,举个栗子:
String s = new String("Frank"); WeakReference<String> weakRef = new WeakReference<String>(s); s = null;
这里我们把s设置为null后,字符串对象便只有弱引用指向它。

