看见世界
面试快问:一句八股,往下挖五层
题目就是面试官会开口的那一句原话 ——「进程和线程的区别」「TCP 和 UDP 的区别」。名词解释不是终点,是起点:它从你背的那一版开始,按五层阶梯一路往下追,最后要你掐 60 秒重讲一遍。
怎么用
这一批是拷问,不是讲课 —— 它模拟的就是面试现场,答不上来是正常结局,它不会替你圆场,也不会在你说了半句之后帮你说完。想把某一块学懂而不是练面试,去「计算机系统」「数据库」「算法」那几个系列,那边是引导姿态。
一句八股怎么撑满 40 分钟:五层阶梯
- 一层 · 定义 —— 这几个词各自是什么、区别列几条。答不上来说明没背过。
- 二层 · 机制 —— 这个区别在系统里具体是哪个结构、哪一步造成的。答不上来说明背过,但只背了结论。
- 三层 · 数字 —— 差多少?几微秒、几倍、几次 IO。答不上来说明没上过手。
- 四层 · 选择 —— 给一个具体场景,选哪个、代价是什么、什么时候这个选择是错的。答不上来说明不会用。
- 五层 · 边界 —— 你刚才那套说法在什么情况下不成立。答不上来说明背得全,但没真懂。
判卷线:到第四层才算能过面试,到第五层才算真的懂,只停在第一层的一律记成背的。
六幕,头尾两幕是这个系列独有的
- 第一幕它不打断、不点评、不提示 —— 让你把现在背的那一版一口气讲完,录下来当基线。它憋着不纠正你是故意的,别以为它没在听。
- 中间四幕按五层阶梯往下挖,主战场在第三幕的机制和数字上。
- 最后一幕掐 60 秒要你重讲一遍,和开场那版并排比 —— 面试现场要交付的不是「我懂」,是一段说得出口的话。
怎么开始
- 挑一份,点开它,把提示词复制走。
- 新开一个空对话贴进去,什么都别说,等它问第一个问题。
- 然后像面试一样,把你背的那一版一口气讲完。讲得烂没关系 —— 那是基线,收尾时要拿它对照的。
- 后面它会开始追。答不上来是正常结局:这不是学习材料,是模拟面试。
中途随时能喊的五个口令
跳过立刻进下一幕提示给一个提示,不是答案直说吧直接把完整答案讲完重讲直接跳到最后一幕,重录 60 秒版本并和开场版对比复盘立刻跳到收尾,输出复盘卡片
三条坑
- 复制走的那段末尾带着底牌,别自己先读。这一批的底牌里有一栏叫「背诵指纹」,写的就是你大概率会脱口而出的那几句原话 —— 看了就没得练了。
- 别在该给数字的地方给形容词。「快很多」「开销很小」这类说法它会当场按住要数 —— 说得出结论、说不出数量级的,这一批一律记成背的。
- 最后两组绑定语言:写 Java 的做 Java 那组,写 Go 的做 Go 那组。两组不是互为翻译,选题各选各的,不用都做。
一周内要面后端,就按「进程和线程」「TCP 和 UDP」「为什么用 B+ 树」「隔离级别」「穿透击穿雪崩」「幂等」这条线走,这六道出现频率最高而且互不重叠。被问麻了想补短板,先做「从输入 URL 到页面出来」—— 它会横着把你的薄弱环节暴露一遍,再按暴露出来的方向挑。
操作系统与并发
进程和线程的区别
「进程是资源分配的最小单位,线程是 CPU 调度的最小单位」—— 然后呢?
同步、异步、阻塞、非阻塞
「同步就是要等,异步就是不用等」—— 这句说完,问题才刚开始。
死锁:怎么产生、怎么破、怎么查
四个条件背得滚瓜烂熟 —— 那你们代码里真的破了哪一条?
乐观锁和悲观锁
「乐观锁假设不会冲突」—— 那你说得出你们那张表的冲突率吗?
线程池的参数怎么定、满了会怎样
参数表说得出来的人很多,说得出这几个参数谁先谁后的很少。
数据库
缓存与消息
分布式与架构
Java 与 JVM
HashMap 的原理、它的线程不安全表现在哪
「数组 + 链表 + 红黑树,负载因子 0.75」—— 那容量为什么必须是 2 的幂?
synchronized 和 Lock、锁升级四个状态
锁升级四个状态背得出来 —— 那每一级到底省了哪一笔开销?
Go 与运行时
GMP 调度模型
「G 是协程、M 是线程、P 是处理器」—— 那为什么非要有 P?
channel 的底层和 select
「无缓冲 channel 会阻塞」—— 它是一个长度为 0 的队列吗?
defer、panic、recover
「defer 延迟执行、后进先出」—— 那它的参数是什么时候求值的?