# Summary
# Cues
# Notes
**这是经典问题的变体:**“**基于候选人简历定制的结构化技术面清单(从易到难)**”。
下面围绕这份简历(Java 后端、Spring 全家桶、MySQL、Redis、并发、秒杀/风控、Linux & Docker、学术项目)给出两列表:**左列问题**、**右列回答必须出现的关键词**。你可以自上而下使用,难度逐步加深。
---
## 0)热身(3~5 分钟)
|问题|回答关键词|
|---|---|
|你最熟悉的三项技术?分别做过什么?|Spring Boot;MyBatis-Plus;Redis;电商/订单/风控;你在其中的职责|
|简历里最有代表性的项目是哪一个?|业务目标;你负责模块;指标/效果(QPS、延迟、错误率)|
|遇到过最棘手的线上问题?怎么排查与复盘?|现象→定位→修复→防再发;日志/指标/链路追踪;复盘清单|
---
## 1)Java & 集合 / 并发基础
| 问题 | 回答关键词 |
| -------------------------------- | ---------------------------------------------- |
| ArrayList 与 LinkedList 场景差异?| 顺序读/随机读;扩容;插入删除复杂度;局部性 |
| [[HashMap]] 扩容与并发风险?| 负载因子;树化;resize;并发环境用 ConcurrentHashMap;size 计数 |
| volatile 能保证什么?不能保证什么?| 可见性;禁止重排;不能保证复合操作原子性 |
| synchronized 与 ReentrantLock 区别?| 可重入;AQS;可中断/公平;条件队列 |
| [Java线程池](Java线程池.md)核心参数如何设?| core/max/queue/keepAlive;拒绝策略;CPU/IO 密集估算 |
| [[CompletableFuture]] 的常见组合?| thenApply/thenCompose/allOf;异步回调链 |
---
## 2)JVM & GC
| 问题 | 回答关键词 |
| ---------------------------------- | ------------------------------------------ |
| Java 内存区域与对象创建路径?[JVM@](
[email protected]) | 堆/栈/元空间;TLAB;逃逸分析;栈上分配 |
| 常见 GC 收集器的取舍?| G1/CMS/ZGC;停顿(STW);吞吐 vs 延迟 |
| 一次 Full GC 频发如何排查?| GC 日志;jstat/jmap/MAT;内存泄漏/大对象;参数调整 |
| OOM 常见类型与对策?| Java heap space;GC overhead;Metaspace;直接内存 |
---
## 3)Spring / Spring Boot / Spring MVC / 事务
|问题|回答关键词|
|---|---|
|IoC/AOP 在你项目里的具体用法?|依赖注入;切面日志/鉴权/限流;JDK vs CGLIB 代理|
|Bean 生命周期与循环依赖?|实例化→依赖注入→初始化;三级缓存;setter/构造器|
|Spring Boot 自动装配如何生效?|spring.factories/AutoConfiguration;@Conditional|
|@Transactional 传播&隔离;失效场景?|REQUIRED/REQUIRES_NEW;READ_COMMITTED/REPEATABLE_READ;自调用/非 public/异常被吞|
|拦截器、过滤器、AOP 各自适用?|web 层/容器层/业务横切;执行顺序|
|统一异常处理怎么做?|@ControllerAdvice;@ExceptionHandler;错误码规范|
---
## 4)MyBatis / MyBatis-Plus / SQL 优化
|问题|回答关键词|
|---|---|
|MyBatis 一级/二级缓存的边界?|会话级/mapper 级;失效条件;一致性风险|
|MP 常用插件与注意点?|分页/乐观锁/逻辑删除/Wrapper;批量写|
|EXPLAIN 解读与典型优化?|type、rows、Extra;覆盖索引;Using filesort;回表|
|联合索引设计与最左前缀?|列顺序;选择性;范围查询右侧失效|
|InnoDB 与事务、MVCC、锁?|聚簇索引/二级索引;快照;间隙锁/Next-Key;死锁检测|
|大表写多的优化手段?|分库分表;读写分离;批量/异步;雪花/Leaf ID|
---
## 5)Redis 基础到进阶
| 问题 | 回答关键词 |
| ------------------- | ------------------------------------------------------------------ |
| Redis 常用数据结构与业务映射?| String/Hash/List/Set/ZSet/Bitmap/HyperLogLog/[Geohash](Geohash.md) |
| 持久化与主从/哨兵/集群要点?| RDB/AOF;AOF 重写;Sentinel;Cluster hash slot |
| 内存淘汰与过期策略?| LRU/LFU;volatile/allkeys;惰性/定期删除 |
| BigKey/HotKey 如何处置?| 拆分;限流;本地缓存;预热 |
| 分布式锁的正确打开方式?| set nx ex 唯一值;续期(watch dog);防误删;Redisson;RedLock 取舍 |
| 布隆过滤器与缓存穿透/击穿/雪崩?| false positive;逻辑过期+异步重建;随机过期;限流降级 |
---
## 6)你简历里的“秒杀/促销/订单异步化”
|问题|回答关键词|
|---|---|
|你写到“Redis+Lua 预检资格 + 乐观锁防超卖”,流程画一下?|资格校验;库存预减;CAS/版本号;幂等 token;失败回滚|
|订单异步化基于 Redis Stream,如何保证不丢不重?|消费组;XADD/XREADGROUP;ack/pending list;重试/死信;幂等键|
|高并发场景的限流怎么做?|令牌桶/漏桶;滑动窗口;网关/拦截器;降级熔断|
|“一个人一单”在集群下如何保证?|Redisson 分布式锁;公平/可重入;key 设计;过期与续期|
|秒杀结果回查与一致性策略?|最终一致;异步下单+轮询;订单状态机;超时关闭|
|你们如何做压测与容量评估?|QPS、并发用户数、RT;JMeter/LoadRunner;压测脚本/链路|
---
## 7)你简历里的“缓存优化与一致性”
|问题|回答关键词|
|---|---|
|你提到“逻辑过期+线程池异步重建”,细节?|逻辑过期字段;互斥/单航班(single-flight);降级兜底|
|旁路缓存/写穿/写回的取舍?|Cache-Aside;Write-Through/Behind;一致性与延迟|
|双写不一致怎么解?|延迟双删;binlog+MQ(Canal);订阅增量;回放修复|
|Key 设计与序列化的注意事项?|前缀命名;过期策略;压缩/JSON/ProtoBuf|
---
## 8)你简历里的“风控/鉴权/登录与权限”
|问题|回答关键词|
|---|---|
|“集群下令牌共享”如何实现?|Redis token store;TTL/刷新;滑动过期;黑名单|
|拦截器 vs 过滤器用于鉴权分别做什么?|认证/授权;顺序;静态资源放行|
|JWT 与 Session 的权衡?|无状态;续签/失效;CSRF;Refresh Token 轮换|
|账号风控的常见特征与实现?|IP/设备/地理位置/频次;黑白名单;规则+模型|
---
## 9)你简历里的“Geo/Feed/点赞关注”
| 问题 | 回答关键词 |
| ---------------------- | --------------------------------------- |
| Redis Geo 如何做“附近网点”?| GEOADD;GEOSEARCH(半径/矩形);geohash 精度;距离单位 |
| Feed 推模式 vs 拉模式?为什么选推?| fanout;收件箱/发件箱;冷热分层;写放大/读放大 |
| 点赞排名与共同关注怎么建模?| ZSet 排名(score=权重/时间衰减);Set 交集;去重与过期 |
---
## 10)系统设计与可用性
|问题|回答关键词|
|---|---|
|设计一个“高可用下单系统”,给出组件与瓶颈?|网关;限流/熔断;服务拆分;缓存/DB;异步化;可观测性|
|降级/熔断/重试/幂等的边界?|熔断器阈值;指数退避;幂等键;重复提交|
|日志、指标、追踪如何落地?|结构化日志;Prometheus/Grafana;TraceId;SLA/SLO|
|分布式事务取舍?|最终一致;Outbox;SAGA/TCC;本地消息表|
---
## 11)DevOps、Linux、Docker
|问题|回答关键词|
|---|---|
|Maven 多环境打包与重复依赖控制?|profile;dependencyManagement;shade/exclusions|
|容器化注意 JVM 参数?|-XX:MaxRAMPercentage;UseContainerSupport;内存/CPU 配额|
|Docker 镜像瘦身与发布?|多阶段构建;非 root;健康检查;只拷贝产物|
|Linux 下定位“CPU 飙高/IO 瓶颈”?|top/pidstat/iostat/vmstat;火焰图;线程栈;lsof/strace|
---
## 12)学术到工程的迁移(加分)
|问题|回答关键词|
|---|---|
|你的 Re-ID 论文做了什么贡献?一句话电梯演讲|HFSFLNet;超图语义;跨模态;ResNet-50 骨干;实验指标|
|如果把 CV 能力引入风控/推荐,你会怎么做?|特征抽取;Embedding 服务化;ANN 检索;离线/实时融合|
---
## 13)行为面 & 软技能
|问题|回答关键词|
|---|---|
|你如何推动一次跨组协作?|目标对齐;里程碑;风险清单;同步节奏|
|做过最系统的一次复盘?产出是什么?|5 Whys;行动项;指标跟踪;知识库沉淀|
---
> 使用方法:逐段递进发问;右列**关键词**可当作核对清单。若候选人提到的实现(如 _逻辑过期+异步重建_、_Redis Stream 消费组_、_Redisson 锁续期_)说不清,可直接在相应分段继续深挖。