别让 Java 集合停留在“会用 API”的阶段
很多开发者写业务代码时,ArrayList 和 HashMap 用得飞起,但一旦遇到面试官追问底层结构,或者在生产环境里排查一次因 HashMap 扩容引发的内存抖动,就会瞬间卡壳。这门课解决的核心问题就是:帮你补齐 Java 集合框架在底层源码与数据结构原理上的认知缺口。它不讲怎么调用 add 或 put 方法,而是直接把集合的底裤扒下来,拆解数组与链表的结合、哈希散列的实现以及并发情况下的线程安全问题。如果你只是 CRUD 写多了,对集合的认知还停留在“存数据、取数据”的层面,这门课就是用来打补丁的。适合那些已经有 Java 基础语法底子,但在准备技术面试、想要往高级开发转岗,或者经常被底层源码细节问住的学习者。缺什么补什么,别假装自己什么都会,先把底层逻辑搞透再说。
抓大放小:建议这样拆解核心模块
资料包按顺序拆分了多个部分,建议你不要像看剧一样从头平铺直叙地扫一遍。第一优先级是先去啃 List 和 Map 这两块,因为它们是日常开发和面试考察的重灾区。看 List 相关章节时,重点对照 ArrayList 的数组扩容机制,自己画一画初始容量、扩容倍数以及 System.arraycopy 的内存拷贝过程;看 Map 相关章节时,死磕 HashMap 的哈希扰动函数、寻址算法、链表转红黑树的阈值。如果资料里涉及到并发集合,这部分要放在最后看,前提是你必须先懂普通的 HashMap,否则直接看 ConcurrentHashMap 的分段锁或 CAS 机制绝对会一头雾水。配套练习方面,强烈建议看完一个机制就打开 IDE 跟着断点走一遍源码,自己写个测试类,利用反射打印出扩容前后的内部数组长度,或者手动构造哈希冲突去观察链表的形成。光看不敲,源码的逻辑在脑子里根本留不住。
看完之后你应该能独立回答这几个问题
检验这门课学没学透的唯一标准,就是关掉视频和资料,你能不能用自己的话把底层逻辑讲清楚。学完后,你应该能独立解答以下问题:ArrayList 和 LinkedList 在增删查改时的时间复杂度到底差在哪里?为什么 ArrayList 的默认扩容是 1.5 倍而 HashMap 是 2 的幂次?HashMap 发生哈希冲突时链表和红黑树是如何互相转化的,阈值分别是多少?这些问题的答案不需要你背诵标准话术,而是基于你跟着课程跑过源码后的真实理解。当你能在没有提示的情况下,独立画出 HashMap 的 put 流程图,并能指出扩容时元素的重哈希过程,这套资料的价值才算被榨干了。把底层细节焊死在脑子里,下次遇到线上 GC 频繁或者集合相关的报错,你才能一眼看穿本质,而不是只会重启服务。
课程目录
1 集合第一部分 (36:40) 2 集合第二部分 (30:39) 3 集合第三部分 (35:56) 4 集合第四部分 (37:31) 5 集合第五部分 (35:25) 6 集合第六部分 (26:24) 7 集合第七部分 (30:10) 8 集合第八部分 (34:18)




