弄懂WeakHashMap实现原理,早日面试成为Java技术专家

本文详细分析了WeakHashMap的实现原理,包括其数据结构、弱引用Key的实现、哈希表的经典特性以及核心代码逻辑。WeakHashMap在Java中作为一个特殊的哈希表,允许弱引用的key在没有其他引用时被垃圾回收。了解WeakHashMap的内部机制有助于提升Java技术专家的面试竞争力。
摘要由CSDN通过智能技术生成

跟HashMap一样,WeakHashMap也是一个哈希表。它比HashMap多出来的功能就是,存储在WeakHashMap中且没有被其他地方引用的key可以被GC回收,而如果把key保存在HashMap中,则无论这个key在其他地方有没有被引用,这个key一直驻留在JVM内存,从而产生泄漏的风险。

我们知道,对于弱引用WeakReference而言,只要发生一次GC,它内部引用的对象就会立即被GC回收。所以说WeakHashMap的key是一个weak key,把key和value放入WeakHashMap之后,如果这个key没有被其他地方引用,这对key-value以及用来保存这对key-value的entry都会被回收。而value是否被其他地方引用,不影响WeakHashMap中这个key是否被GC。

本文以图解方式分析WeakHashMap的核心实现逻辑,助你早日成为Java技术专家。

1. WeakHashMap实现总览

我们知道WeakHashMap是一个java集合工具类,主要起数据结构的作用,用于在内存中存取数据。所以,从宏观角度看WeakHashMap,它由两部分组成:

其实,Java Collection Framework中的所有集合工具类都可以这么理解,即包含2部分:数据+操作。

那么,它的数据又是由哪些东西组成呢,如图所示。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值