Java HashMap 详解:从哈希定位到扩容与线程安全(JDK 25)
基于 JDK 25 源码,沿键值对的存取路径讲清 HashMap 的哈希定位、扩容拆分、树化条件、0.75 负载因子和线程安全边界,并介绍容量预估与日常使用中的常见问题。
Java之JUC学习--part5
Java之JUC学习--part5 无锁 CAS 原理 无锁编程:Lock Free CAS 的全称是 Compare-And-Swap,是 CPU 并发原语 CAS 并发原语体现在 Java 语言中就是 sun.misc.Unsafe 类的各个方法,调用 UnSafe 类中的 CAS 方法,JVM
分布式 ID 生成系统 Leaf 的设计思路,源码解读
分布式 ID 生成系统 Leaf 的设计思路,源码解读 什么是分布式ID? ID的特点就是唯一,而分布式ID就是指分布式系统下的ID,他是全局唯一的。 为啥需要分布式ID 这就和唯一息息相关了。比如我们使用MySQL存储数据,一开始数据量不大,但是业务经过一定时间的发展,单表数据每日剧增,最终突破1
浅析Spring中AOP的实现原理——动态代理
浅析Spring中AOP的实现原理——动态代理 一、前言 今天上课的时候,我想尝试一下在Spring里面的大名顶顶的CGLIB代理方式,但是当时并没有成功,发现需要加配置才行,于是,我打算在这篇博客就来简单地聊一聊Spring的AOP是如何实现的,并通过一个简单的测试用例来验证一下。废话不多说,直接
Java TreeMap详解:从源码分析到实践应用
Java TreeMap详解:从源码分析到实践应用 之前 LinkedHashMap 那篇文章里提到过了,HashMap 是无序的,所以有了 LinkedHashMap,加上了双向链表后,就可以保持元素的插入顺序和访问顺序,那 TreeMap 呢? TreeMap 由红黑树实现,可以保持元素的自然顺
详解 Java 中的双端队列
详解 Java 中的双端队列 Java 里有一个叫做Stack的类,却没有叫做Queue的类(它只是个接口名字,和类还不一样)。 public interface Queue<E> extends Collection<E> {}
当需要使用栈时,Java 已不推荐使用Stack,而是推荐使用更高
Java 优先级队列PriorityQueue
Java 优先级队列PriorityQueue PriorityQueue 是 Java 中的一个基于优先级堆的优先队列实现,它能够在 O(log n) 的时间复杂度内实现元素的插入和删除操作,并且能够自动维护队列中元素的优先级顺序。 通俗来说,PriorityQueue 就是一个队列,但是它不是先
Java LinkedHashMap详解
Java LinkedHashMap详解 俗话说了,“金无足赤人无完人”,HashMap 也不例外,有一种需求它就满足不了,假如我们需要一个按照插入顺序来排列的键值对集合,那 HashMap 就无能为力了。那该怎么办呢?必须得上今天这篇文章的主角:LinkedHashMap。 为了提高查找效率,Ha
LinkedList控诉:我爹都嫌弃我!
LinkedList控诉:我爹都嫌弃我! 换个风格试试水! 大家好,我是 LinkedList,和 ArrayList 是同门师兄弟,但我俩练的内功却完全不同。师兄练的是动态数组,我练的是链表。 问大家一个问题,知道我为什么要练链表这门内功吗? 举个例子来讲吧,假如你们手头要管理一推票据,可能有一张
ArrayList源码详解-Java21版
ArrayList源码详解-Java21版 ArrayList 可以称得上是集合框架方面最常用的类了,可以和 HashMap 一较高下。从名字就可以看得出来,ArrayList 实现了 List 接口,并且是基于数组实现的。 数组的大小是固定的,一旦创建的时候指定了大小,就不能再调整了。也就是说,如