# 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 锁续期_)说不清,可直接在相应分段继续深挖。