您的位置:首页 > 编程语言 > Java开发

Java的四中引用类型

2015-10-25 14:08 197 查看
强引用: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不会被回收。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: