浅谈Java 中的引用类型
2020-03-11 17:51
295 查看
Java 中的引用类型:强引用、软引用、弱引用和虚引用
强引用
如 Object object = new Object(),那 object 就是一个强引用,如果一个对象具有强引用,垃圾回收器就永远不会回收它。
软引用
软引用用来描述一些还有用但非必需的对象。在内存即将发生内存溢出之前,会把这些对象列进回收范围之中进行二次垃圾回收。如果这次回收还没有足够内存,才会发生内存溢出现象。
另:软引用可用来实现内存敏感的高速缓存。
弱引用
用来描述非必需的对象。被弱引用关联的对象只能存活到下一次垃圾收集发生之前。当垃圾回收时,无论当前内存是否足够,都将回收被弱引用关联的对象。
虚引用
最弱的一种引用关系。无法通过一个虚引用获得一个对象实例;一个对象是否有虚引用,都不会对其生存周期构成影响。
设置虚引用的唯一目的是在垃圾回收时收到一个系统通知。
虚引用与软引用、弱引用的一个区别在于:虚引用必须和引用队列(ReferenceQueue)联合使用。当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,会在垃圾回收之前,将该引用加入到与之对应关联的引用队列中。程序通过判断引用队列中是否已经加入了该虚引用,来了解被引用的对象是否将被垃圾回收。程序如果已经发现该虚引用被加入了引用队列中,就会将所引用的对象的内存被回收之前采取必要的行动。
软引用、弱引用的使用场景原理分析:实现内存敏感的高速缓存。
您可能感兴趣的文章:
相关文章推荐
- 浅谈Java中的四种引用类型
- Java中基本类型和引用类型的传递
- java中“==”和equals方法的区别,再加上特殊的String引用类型
- 浅谈Java两种并发类型——计算密集型与IO密集型
- java中四种引用类型
- java List类型传递是值还是引用?如何传递值?
- java 之 引用(基本类型的包装类,构造函数析构函数与c++不同)
- Java四种引用类型
- JAVA基本数据类型及引用数据类型详解
- java中的基本数据类型和引用数据类型
- 浅谈Java中的存储空间类型
- Java基本类型和引用类型 分类: Java 2015-08-04 14:51 6人阅读 评论(0) 收藏
- 浅谈Java String数据类型
- 浅谈C#中的值类型和引用类型
- 浅谈java数据类型间的转换
- Java中的基本数据类型和引用数据类型的内存模型
- Java引用类型具体解释
- Java 对象的4种引用类型
- Java中引用类型的检查
- 浅谈C#中的值类型和引用类型