【高级java程序员应该知道的小知识】 WeakHashMap
来源:互联网 发布:印度人是黄种人吗 知乎 编辑:程序博客网 时间:2024/05/01 13:21
本篇宗旨:simple & stupid
WeakHashMap (弱引用的哈希表)
Hash table based implementation of the Map interface, with weak keys. An entry in a WeakHashMap will automatically be removed when its key is no longer in ordinary use. More precisely, the presence of a mapping for a given key will not prevent the key from being discarded by the garbage collector, that is, made finalizable, finalized, and then reclaimed. When a key has been discarded its entry is effectively removed from the map, so this class behaves somewhat differently from other Map implementations.
基于弱引用的键Key
实现的哈希表,当GC发现某个弱引用的键可以回收时,键值对<K,V>
也会从表中移除。
用法:
private static final WeakHashMap<Configuration,Object> REGISTRY = new WeakHashMap<Configuration,Object>();
用途:
当需要做缓存Cache时,如果不及时释放一些缓存中的不用的对象所占用的内存,是一种对内存的浪费,因为缓存的生命周期往往和容纳此缓存的组件的生命周期一样长。
如果考虑用哈希表来做<Key,Value>
式的缓存,将一个不再使用的对象从哈希表移除的方式就是手工编写代码移除。这很麻烦,也容易忘记。
这种情况,就推荐使用WeakHashMap
。
当Key
是weak-reachable
弱可达状态时,Key
和Value
都会从表中移除。
【版权所有@foreach_break 转载请注明出处 博客地址http://blog.csdn.net/gsky1986】
- 【高级java程序员应该知道的小知识】 WeakHashMap
- 【高级java程序员应该知道的小知识】 volatile
- 【高级java程序员应该知道的小知识】weak reference
- 优秀的 Java 程序员所应该知道的 Java 知识
- Java程序员也应该知道的一些网络知识
- Java程序员也应该知道的一些网络知识
- 程序员应该知道的计算机网络知识
- 每个程序员应该知道的计算机网络知识
- 程序员应该知道的计算机网络知识
- Java程序员也应该知道的系统知识系列之内存
- Java程序员都应该知道的福利
- JAVA程序员应该知道的linux命令
- JAVA程序员应该知道的linux命令
- Java程序员都应该知道的福利
- Java程序员应该掌握的Linux知识
- 前端程序员应该知道的 15 个 jQuery 小技巧
- 前端程序员应该知道的 15 个 jQuery 小技巧
- 前端程序员应该知道的 15 个 jQuery 小技巧
- JavaScript学习笔记之创建对象
- JavaScript学习笔记之继承
- Linux 共享库:LD_LIBRARY_PATH 与ld.so.conf
- 轻松互联网开发平台(Easy Do IT,原WebEasy)升级预告
- 西安
- 【高级java程序员应该知道的小知识】 WeakHashMap
- 【高级java程序员应该知道的小知识】weak reference
- android设置缺省的异常捕获器
- 【VR】Leap Motion 官网文档 HandController(手部控制器)
- java取得指定数据的sha-1校验码
- 如何从菜鸟成为老鸟?
- Leetcode NO.202 Happy Number
- activity使用定制字体
- Gossip算法