DEEPDIVE · JDK 8
深钻模块:3 个硬核主题
不满足于会用,要能讲清「为什么这样设计、代价是什么、边界在哪里」。
四步结构每个主题都按「心智模型 → 机制拆解 → 落地实践 → 费曼自检」展开。你可以先跳到任意一步,但真正的掌握发生在最后一步。
01
Lambda 的字节码真相:invokedynamic 与 LambdaMetafactory
Lambda 不是匿名类的语法糖。编译期,Lambda 体被提取成私有方法,调用点变成 invokedynamic;运行期,LambdaMetafactory 首次链接时生成实现函数式接口的类。
02
Stream 流水线:惰性、短路与并行边界
Stream 的价值不只是写法短,而是把「遍历策略」从业务代码里抽走:来源决定怎么切分,中间操作决定怎么处理,终止操作决定何时停止。
03
HashMap 内部结构:扰动、扩容与树化
JDK 8 的 HashMap 用「数组 + 链表 + 红黑树」平衡平均与最坏情况:扰动函数把高位带进低位,2 的幂容量把取模变成位与,树化只在极端碰撞时兜底。
为什么是这四步METHOD
- 心智模型:先建立一张能自洽的图。没有模型,细节只是碎片。
- 机制拆解:看 JDK 如何实现,理解设计取舍与代价。
- 落地实践:把机制落到代码、参数、排障步骤上。
- 费曼自检:用自己的话复述,暴露理解漏洞。回答不了就回到对应小节。