首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

weakHashMap用法

WeakHashMap,此种Map的特点是: 当除了自身有对key的引用外,此key没有其他引用那么此map会自动丢弃此值, 举例来说:声明了两个Map对象,一个是HashMap,一个是WeakHashMap...,同时向两个map中放入a、b两个对象,当HashMap remove掉a 并且将a、b都指向null时,WeakHashMap中的a将自动被回收掉。...出现这个状况的原因是,对于a对象而言,当HashMap remove掉并且将a指向null后,除了WeakHashMap中还保存a外已经没有指向a的指针了,所以WeakHashMap会自动舍弃掉a,而对于...b对象虽然指向了null,但HashMap中还有指向b的指针,所以 WeakHashMap将会保留 总结来说: WeakHashMap并不是你啥也不干他就能自动释放内部不用的对象的,而是在你访问它的内容的时候释放内部不用的对象

21820

weakHashMap 用法

WeakHashMap,此种Map的特点是: 当除了自身有对key的引用外,此key没有其他引用,那么GC之后此map会自动丢弃此值 当使用 WeakHashMap 时,即使没有显示的添加或删除任何元素...举例来说:声明了两个Map对象,一个是HashMap,一个是WeakHashMap,同时向两个map中放入a、b两个对象,当HashMap remove掉a 并且将a、b都指向null时,WeakHashMap...出现这个状况的原因是,对于a对象而言,当HashMap remove掉并且将a指向null后,除了WeakHashMap中还保存a外已经没有指向a的指针了,所以WeakHashMap会自动舍弃掉a,而对于...WeakHashMap 内部是通过弱引用来管理entry的,弱引用的特性对应到 WeakHashMap 上意味着什么呢?...将一对key, value放入到 WeakHashMap 里并不能避免该key值被GC回收,除非在 WeakHashMap 之外还有对该key的强引用。

27010

WeakHashMap的原理

简介 WeakHashMap和HashMap一样,WeakHashMap也是一个散列表,它存储的内容也是键值对(key-value)映射,而且键和值都可以为null。...Map.Entry,即Entry实现了WeakReference类),当WeakHashMap某个键不再正常使用时,会被从WeakHashMap自动删除。...因此,WeakHashMap使用了弱引用作为内部数据的存储方案,,WeakHashMap可以作为简单缓存表的解决方案,当系统内存不足时,垃圾收集器会自动的清除没有在任何其他地方被引用的键值对。...如果需要用一张很大的Map作为缓存表时,那么可以考虑使用WeakHashMap。...在WeakHashMap实现中,借用了ReferenceQueue这个“监听器”来保存被GC回收的”弱键”,然后在每次使用WeakHashMap时,就在WeakHashMap中删除ReferenceQueue

21920

Java中的WeakHashMap

WeakHashMap的这种特性比较适合实现类似本地、堆内缓存的存储机制——缓存的失效依赖于GC收集器的行为 WeakHashMap的定义如下: public class WeakHashMap<K,V...WeakHashMap跟普通的HashMap不同,WeakHashMap的行为一定程度上基于垃圾收集器的行为,因此一些Map数据结构对应的常识在WeakHashMap上会失效——size()方法的返回值会随着程序的运行变小...出现这个状况的原因是,对于a对象而言,当HashMap remove掉并且将a指向null后,除了WeakHashMap中还保存a外已经没有指向a的指针了,所以WeakHashMap会自动舍弃掉a,而对于...利用WeakHashMap实现内存缓存 可以看出,WeakHashMap的这种特性比较适合实现类似本地、堆内缓存的存储机制——缓存的失效依赖于GC收集器的行为。...WeakHashMap非常适合使用在这种场景下,下面的代码演示了具体的实现: WeakHashMap map = new WeakHashMap

25220

java weakhashmap_解析WeakHashMap与HashMap的区别详解

WeakHashMap,此种Map的特点是,当除了自身有对key的引用外,此key没有其他引用那么此map会自动丢弃此值, 见实例:此例子中声明了两个Map对象,一个是HashMap,一个是WeakHashMap...出现这个状况的原因是,对于a对象而言,当HashMap remove掉并且将a指向null后,除了WeakHashMap中还保存a外已经没有指向a的指针了,所以WeakHashMap会自动舍弃掉a,而对于...但是如果预先生成了WeakHashMap,而在GC以前又不曾访问该WeakHashMap,那不是就不能释放内存了吗?...果不其然,WeakHashMap这个时候并没有自动帮我们释放不用的内存。...WeakHashMap 去处理 ReferenceQueue 所以 WeakReference 包装的key依然存在在WeakHashMap中,其对应的value也当然存在。

58310

Java中的WeakHashMap

参考链接: Java WeakHashMap 楔子  WeakHashMap,此种Map的特点是,当除了自身有对key的引用外,此key没有其他引用那么此map会自动丢弃此值,所以比较适合做缓存。 ...WeakHashMap的这种特性比较适合实现类似本地、堆内缓存的存储机制——缓存的失效依赖于GC收集器的行为  WeakHashMap的定义如下:  public class WeakHashMap<K...WeakHashMap跟普通的HashMap不同,WeakHashMap的行为一定程度上基于垃圾收集器的行为,因此一些Map数据结构对应的常识在WeakHashMap上会失效——size()方法的返回值会随着程序的运行变小...WeakHashMap非常适合使用在这种场景下,下面的代码演示了具体的实现:  WeakHashMap map = new WeakHashMap<...参考文献  WeakHashMap的使用场景Java中的WeakHashMap

46530

【深入理解Java集合框架】浅谈WeakHashMap

总体介绍 在Java集合框架系列文章的最后,笔者打算介绍一个特殊的成员:WeakHashMap,从名字可以看出它是某种 Map。...它的特殊之处在于 WeakHashMap 里的entry可能会被GC自动删除,即使程序员没有调用remove()或者clear()方法。...WeakHashMap 内部是通过弱引用来管理entry的,弱引用的特性对应到 WeakHashMap 上意味着什么呢?...将一对key, value放入到 WeakHashMap 里并不能避免该key值被GC回收,除非在 WeakHashMap 之外还有对该key的强引用。...具体实现 WeakHashMap的存储结构类似于HashMap,读者可自行参考前文,这里不再赘述。 关于强弱引用的管理方式,博主将会另开专题单独讲解。 Weak HashSet?

31820
领券