
源码分析
文章平均质量分 96
源码分析
Yaml墨韵
热爱编程、熟悉全栈开发,商务合作或者有开发需求可加文章底部vx,期待与大家共同进
展开
-
解读 ConcurrentHashMap 源码:探索高并发场景下的卓越性能
Java7 中 ConcurrentHashMap 使用的分段锁,也就是每一个 Segment 上同时只有一个线程可以操作,每一个 Segment 都是一个类似 HashMap 数组的结构,它可以扩容,它的冲突会转化为链表。但是 Segment 的个数一但初始化就不能改变。Java8 中的 ConcurrentHashMap 使用的 synchronized 锁加 CAS 的机制。结构也由 Java7 中的。原创 2024-11-15 11:05:26 · 926 阅读 · 0 评论 -
LinkedHashMap 源码深度解析与优化技巧
是 Java 提供的一个集合类,它继承自HashMap,并在HashMap基础上维护一条双向链表,使得具备如下特性:支持遍历时会按照插入顺序有序进行迭代。支持按照元素访问顺序排序,适用于封装 LRU 缓存工具。因为内部使用双向链表维护各个节点,所以遍历时的效率和元素个数成正比,相较于和容量成正比的 HashMap 来说,迭代效率会高很多。逻辑结构如下图所示,它是在HashMap基础上在各个节点之间维护一条双向链表,使得原本散列在不同 bucket 上的节点、链表、红黑树有序关联起来。。原创 2024-11-14 10:46:34 · 859 阅读 · 0 评论 -
深度解析 Java HashMap 源码:揭开哈希表背后的秘密
HashMap 主要用来存放键值对,它基于哈希表的 Map 接口实现,是常用的 Java 集合之一,是非线程安全的。HashMap可以存储 null 的 key 和 value,但 null 作为键只能有一个,null 作为值可以有多个JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突)。JDK1.8 以后的HashMap。原创 2024-11-14 10:14:42 · 1018 阅读 · 0 评论 -
解读 DelayQueue 源码:探究其精妙的设计架构与实现细节
DelayQueue是 JUC 包(为我们提供的延迟队列,用于实现延时任务比如订单下单 15 分钟未支付直接取消。它是的一种,底层是一个基于实现的一个无界队列,是线程安全的BlockingQueue 的实现类DelayQueue中存放的元素必须实现Delayed接口,并且需要重写getDelay()方法(计算是否到期)。默认情况下,DelayQueue会按照到期时间升序编排任务。只有当元素过期时(getDelay()方法返回值小于等于 0),才能从队列中取出。原创 2024-11-14 09:49:48 · 698 阅读 · 0 评论