← 返回思维链目录

⚡ 面试前速查卡

10 分钟扫一遍,回忆起每篇的「本质 + 第一反应」

核心心法:看到现象 → 先想"本质是什么"→ 再想"怎么分叉排查"
📚 思维链 9 篇 · 本质 + 第一反应
01💻 操作系统
本质:OS 是资源管家,在有限资源下让多程序高效隔离地跑
看到"同时干好多事":CPU 时间片切换进程重(独立内存)线程轻(共享内存) 切换有代价(上下文切换)
看到"1 万连接":不能一连接一线程select 轮询(累)epoll 通知(O(1))Redis/Nginx 单线程扛几万靠它
进程/线程虚拟内存epoll零拷贝
02🌐 网络协议
本质:网络协议演进都为"更快更安全更实时"
看到"打开网页":查地址(DNS)建通道(TCP)加密(TLS)请求(HTTP)响应 打不开顺着链查
看到"跨域报错":同源策略拦了CORS/代理绕开
DNS/TCP/TLSHTTP 演进同源策略WebSocket
03🏛️ 系统设计
本质:不是画图,是展示思考过程。没有完美方案,只有权衡
六步走:澄清需求估算 QPS数据建模分层架构核心难点+权衡扩展容灾
秒杀三板斧:限流(挡)+ 缓存(预减)+ 异步(削峰)
短链发号秒杀Feed 推拉CAP
04🎨 前端代码 → 根因
本质:像侦探读代码,现象 → 为什么 → 机制 → 根因
内存涨:闭包持有引用GC 可达不回收定时器/监听没清
循环全打印 3:var 无块级作用域闭包共享变量改 let
页面卡:读写交替强制同步布局批量读写分离 + transform
ref 卡:Proxy 深度劫持大对象shallowRef
闭包泄漏重排重绘this 丢失shallowRef
05🗄️ 数据库 SQL
本质:问题核心是"扫太多"(索引解决)或"并发干扰"(事务/锁解决)
SQL 慢:EXPLAIN 看 type/keyALL=全表扫查索引失效(运算/类型转换/左模糊/最左前缀)
死锁:相反顺序加锁循环等待统一加锁顺序预防
EXPLAIN索引失效死锁MVCC
06☕ Java / JVM
本质:核心在"内存"(OOM/GC)和"并发"(共享与原子)
OOM:堆装不下jmap+MAT 找大对象/泄漏大对象(瞬时)/泄漏(慢涨)/堆小
GC 频繁:jstat 看 YGC/FGC对象产生快/回收不掉/堆小
线程安全:共享+非原子=竞态加锁/原子类/ThreadLocal
OOMGCThreadLocal@Transactional 失效
07🌐 分布式
本质:所有问题源于"网络不可靠+操作无法原子",解法是"最终一致+幂等+故障隔离"
锁失效:过期/删错/主从丢锁看门狗+唯一标识+Redlock
雪崩:级联失败超时+熔断+降级+限流(三板斧)
分布式锁幂等CAP熔断降级
08🤖 AI / LLM
本质:LLM 擅长推理不擅长记忆,所有应用都是"把事实外包,让模型做擅长的事"
幻觉:概率续写不是事实查询RAG 塞事实+温度调低
流式崩:Markdown 块级未闭合buffer 补全+rAF+DOMPurify
SSE 选型:单向流+fetch ReadableStream(带 token)
幻觉RAG流式渲染上下文溢出
09🏗️ 前端架构
本质:管理复杂度,衡量标准是"改一处影响多少处"
改一处崩一片:组件耦合高内聚低耦合成/状态管理/provide-inject
状态混乱:能局部就局部,共享才进 store
复用不了:变化与不变没分离props/slots 暴露变化
耦合状态管理性能组件复用
🚨 线上排障 · 现象 → 本质 → 第一反应
🔥CPU 高
本质:计算单元被持续占用
第一反应:单线程高(代码:死循环/正则)还是整体高(GC/锁) → 先 jstat 排 GC,再 top -H + jstack 排代码
💥OOM
本质:堆装不下了
第一反应:突然爆(大对象)还是慢涨(泄漏) → jmap + MAT 找大对象/引用链
🐌接口慢
本质:某段耗时长
第一反应:APM 定位瓶颈段 → DB 慢查 SQL/索引,应用慢查代码/GC/锁,下游慢加超时熔断
🔒死锁(卡死)
本质:互相等锁全卡住,特征是 CPU 不高
第一反应:卡住+CPU 不高=在"等"不是在"算" → jstack / SHOW ENGINE INNODB STATUS
💡 万能心法(面试时讲思路,别背命令)
第一步:看到现象,先想清楚它本质是什么(CPU 高=计算被占用、OOM=内存不够、慢=某段堵了)。
第二步:归类对了方向就对了 —— 是"忙死"(CPU 高)还是"等死"(死锁)?是"装不下"(OOM)还是"堵住了"(慢)?
第三步:剩下的就是用工具验证(jstat/jmap/EXPLAIN/APM)。

面试话术:"我看到 X 现象,第一反应是 Y(本质),因为 Z(机制),所以我用 A 工具去验证 B。"这样显得你有体系地思考,而不是死记硬背。