`

Java WeakHashMap的一点感悟

    博客分类:
  • java
 
阅读更多

https://www.jianshu.com/p/98cde86056ac

 

实际上value的回收是延迟与key的,仅仅是在key被GC后,把value置为null,并不是立即回收

https://www.jianshu.com/p/e1b6aefeb807

 

 

------------------------

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并不是你啥也不干他就能自动释放内部不用的对象的,而是在你访问它的内容的时候释放内部不用的对象

 

--------------------- 

作者:刘嘉威 

来源:CSDN 

原文:https://blog.csdn.net/liu88010988/article/details/50789056 

版权声明:本文为博主原创文章,转载请附上博文链接!

 

 

 

 

 

----------------------

https://www.jb51.net/article/127082.htm

分享到:
评论

相关推荐

    java集合-WeakHashMap的使用

    WeakHashMap是Java中的一种特殊的哈希表实现,它使用弱引用(Weak Reference)来保存键对象。当键对象没有被其他强引用引用时,在垃圾回收时会自动从WeakHashMap中移除对应的键值对。

    Java编程WeakHashMap实例解析

    主要介绍了Java编程WeakHashMap实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

    Java弱引用与WeakHashMap

    书中还提到可以用WeakHashMap来作为缓存的容器可以有效解决这一问题。之前也确实遇到过类似问题,但是没有接触过“弱引用”相关的问题,于是查阅了一些资料。  《Java 理论与实践: 用弱引用堵住内存泄漏》一文也...

    清华妹子的Java仓库(进阶学习路线)

    本仓库记录了我的Java学习进阶之路,涵盖了Java基础、JDK源码、JVM中的重要知识,附有代码和博客讲解,旨在提供一个Java在线共享学习平台,帮助更多的...Java集合框架源码解读(4)——WeakHashMap Java集合框架源码解读

    Java 基础核心总结 +经典算法大全.rar

    《Java 基础核心总结》 Java 概述 什么是 Java2 Java 的特点Java 开发环境 JDK JRE Java 开发环境配置 Java 基本语法 数据类型基础语法运算符 Java 执行控制流程条件语句 if 条件语句 if...else 条件语句if...else ...

    WeakHashMap的使用方法详解

    主要介绍了WeakHashMap的使用方法详解的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下

    疯狂JAVA讲义

    7.6.3 WeakHashMap实现类 279 7.6.4 IdentityHashMap实现类 280 7.6.5 EnumMap实现类 281 7.7 HashSet和HashMap的性能选项 282 7.8 操作集合的工具类:Collections 283 7.8.1 排序操作 283 7.8.2 查找,替换...

    Java优化编程(第2版)

    Java优化编程(第2版)通过丰富、完整、富有代表性的实例,展示了如何提升Java应用性能,并且给出了优化前与优化后的Java应用程序的性能差别,以实际的实例与数字告诉你,为什么不可以这么做,应该怎么做,深入分析...

    java集合框架 解析

    java集合框架 3.6. LinkedHashSet类 4. Map接口 4.1. Map.Entry接口 4.2. SortedMap接口 4.3. AbstractMap抽象类 4.4. HashMap类和TreeMap类 4.4.1. HashMap类 4.4.2. TreeMap类 4.5. LinkedHashMap类 4.6. ...

    解析WeakHashMap与HashMap的区别详解

    本篇文章是对WeakHashMap与HashMap的区别进行了详细的分析介绍,需要的朋友参考下

    Java期末复习-类集框架

    Java类集框架 最大单值操作父接口Collection及其子接口、子类: List接口、ArrayList类、Vector类、栈操作类Stack、链表操作类LinkList、队列操作接口Queue、Set接口、HashSet类、TreeSet类、SortedSet接口 双值操作...

    Java集合类操作优化经验总结

    本文首先针对 Java 集合接口进行了一些介绍,并对这些接口的实现类进行详细描述,包括 LinkedList、ArrayList、Vector、Stack、Hashtable、HashMap、WeakHashMap 等,然后对一些实现类的实现方式和使用经验进行讲解...

    超全Java集合框架讲解.md

    - WeakHashMap - Hashtable - Collection 集合体系详解 - Set 接口 - AbstractSet 抽象类 - SortedSet 接口 - HashSet - LinkedHashSet - TreeSet - List 接口 - AbstractList 和 AbstractSequentialList...

    javabitset源码-JerrySoundCode:杰瑞声码

    WeakHashMap (done) 并发集合 ArrayBlockingQueue(done) LinkedBlockingDeque (done) LinkedBlockingQueue (done) PriorityBlockingQueue (done) ConcurrentHashMap (done) ConcurrentLinkedQueue (done) C

    Thinking in Java 4th Edition

    Java SE5 and SE6 .................. 2 Java SE6 ......................................... 2 The 4th edition........................ 2 Changes .......................................... 3 Note on the ...

    picketlink-jbas-common-2.6.0.CR4.zip

    Java-WeakIdentityHashMap.zip,weakhashmap identityhashmapa独立库的组合,用于weakidantityhashmap实现内/外字段

    线程死锁CPU过高,请求原因分析

    线程死锁 CPU过高 WeakHashMap 请求原因分析

    WeakObjectPool:用于在对象生命周期中将对象附加到对象(即装饰器)的池

    您是否曾经尝试过在运行时扩展Java对象?解决方案WeakObjectPool :用于保存和扩展[弱引用的对象]的池( “ title =” WeakReference JavaDoc) 。 这与有何不同? 这里有几个关键的区别,它们有效地定义了...

    各种集合的总结

    总结了集合中常用的一点点,希望可以共享 List:LinkedList,ArrayList,Vector(Stack),Set Map:Hashtable,HashMap,WeakHashMap

    javalruleetcode-dsal:数据结构与算法个人整理

    java lru leetcode 基础算法 快速排序: 随机枢纽元快排、三路快排、三数中值快排 归并排序: 自顶向下归并、自底向上归并、链表的归并排序 堆排序: 下沉构建堆、赋值确定位置下沉 二分查找: 查找第一次后最后一次出现...

Global site tag (gtag.js) - Google Analytics