2016 - 2024

感恩一路有你

强引用和弱引用的区别 强引用和弱引用使用规范?

浏览量:2949 时间:2021-04-13 14:40:00 作者:admin

强引用和弱引用使用规范?

[1强引用

特点:Obj在我们的典型代码中object Obj=new object()是强引用。与关键字new创建的对象关联的引用是强引用。当JVM内存空间不足时,JVM宁愿抛出outofmemoryerror(OOM)使程序异常终止,也不愿回收具有强引用的“活动”对象来解决内存不足的问题。对于普通对象,如果没有其他引用关系,只要它超出引用的范围或显式地将相应的(强)引用赋值为null,就可以对其进行垃圾收集。垃圾收集的具体时间取决于垃圾收集策略。

2弱引用

弱引用由WeakReference类实现。弱引用的生命周期比软引用短。垃圾回收器线程在扫描其管辖的内存区域的过程中,一旦发现弱引用对象,无论当前内存空间是否足够,都会回收其内存。由于垃圾收集器是一个低优先级的线程,因此不需要快速回收弱引用对象。弱引用可以与引用队列结合使用。如果弱引用引用的对象被垃圾收集,Java虚拟机将把弱引用添加到与其关联的引用队列中。

应用场景:弱应用程序也可用于内存敏感缓存。

弱引用是什么?

在计算机编程中,弱引用与强引用相对,强引用指的是不能保证被引用对象不会被垃圾收集器回收的引用。如果一个对象只被弱引用引用,它被认为是不可访问的(或弱可访问的),因此可以在任何时候被回收。一些具有垃圾收集机制的语言,如Java、C#、python、Perl、LISP等,在不同程度上支持弱引用。

强引用和弱引用的区别 强类型和弱类型的区别 java弱引用和强引用

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。