- 博客(2)
- 收藏
- 关注
原创 【1.7版本】HashMap源码分析(一)
内容:本次源码分析的内容为HashMap的put(K k,V v)方法 主要流程: 一、先判断Entry数组是否被初始化了,没有则先做初始化的工作 二、Entry数组创建后,再判断key是否为空,为空则进入putForNullKey() 三、Entry数组创建了并且key不为null: 1、根据key进行哈希码的多次扰动处理得出hash 2、再根据key的哈希和数组长度减一作与运算计算出该key在数组上的位置(索引) 3、遍历索引对应的桶(链表),看是否能找到想要的节点(hash码和key都一致的那个key
2020-09-02 23:24:03
156
1
原创 关于AQS源码中公平锁的理解以及疑问
直入主题 可重入锁ReentrantLock中的实现方式有两种:公平锁和非公平锁,今天我们主要研究下公平锁 1、公平锁 调用lock.lock()时,会调用sync.lock(),具体来看下源码: ReentrantLock: public void lock() { sync.lock(); } FairSync: final void lock() { acquire(1); } AbstractQueuedSynchronizer:
2020-08-30 22:12:09
270
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人