Java的四中引用类型

来源:互联网 发布:淘宝商家等级划分 编辑:程序博客网 时间:2024/06/11 23:39

强引用:JVM宁愿抛出OOM也不会将它回收,可能导致内存泄露

软引用:当内存空间不足的时候才会去回收软引用的对象

弱引用:在系统GC时,弱引用的对象一定会被回收,软弱引用适合保存那些可有可无的缓存数据

虚引用:虚引用跟没有引用差不多,即使虚引用对象还存在,get方法总是返回null,它最大的作用是跟踪对象回收,清理被销毁对象的相关资源

WeakHashMap适用场景:如果系统需要一张很大的map表,map中的表项作为缓存之用,即使没能从map中拿到数据也没关系的情况下。一旦内存不足的时候,weakhashmap会将没有被引用的表项清除掉,从而避免内存溢出。它是实现缓存的一种特别好的方式。

实现:Entry<K,V> extendsWeakReference<K> implements Map.Entry<K,V>

Entry继承了WeakReference,并在构造方法中构造了key的弱弓l用

**如果希望WeakHashMap能够自动清理数据就不要在系统的其他地方强引用WeakHashMap的key,否则,这些key不会被回收。

0 0
原创粉丝点击