面灵AI

8.4 小厂 Java 全栈 一面

时间
2026-08
来源
牛客网

《面试题目》

  1. 一、面试基本情况
  2. 面试形式:腾讯会议线上面试
  3. 参与人员:HR + 技术面试官
  4. 面试时长:约30分钟
  5. 前置流程:HR先沟通实习时间、薪资、到岗情况,随后自我介绍,进入正式技术面试
  6. 面试侧重:高并发、服务可用性、工程化落地、项目底层细节,没有过多询问基础八股
  7. 二、面试提问 & 作答情况(完整还原
  8. 一)第一个高并发核心项目
  9. MySQL for update 行锁升级表锁场景
  10. 面试官提问:哪些情况会导致 for update 行锁升级为表锁?
  11. 我的作答:仅答出查询未走索引这一种情况,回答不完整。
  12. 暴露问题:对 MySQL 锁机制、行锁失效场景掌握不全面,底层原理不扎实。
  13. Redis 聚合方案设计与容错
  14. 面试官提问
  15. 项目中为什么选用 Redis 做数据聚合?
  16. 若 Redis 宕机,是否会出现数据问题?如何保障稳定性?
  17. 我的作答:坦诚承认该模块存在设计短板,说明当前业务非核心、容错要求不高,但没有给出完整的兜底、降级、容错方案。
  18. 暴露问题:只实现功能,缺少高可用、故障兜底、异常防护的工程化思考。

《参考解析》

  1. Redis常用于缓存、分布式锁和计数。缓存与数据库更新通常采用“先写数据库、再删除缓存”,并通过重试、延时双删或消息补偿处理删除失败。
  2. MySQL索引通常使用B+树,叶子节点按顺序连接,适合范围查询;设计索引时结合选择性、最左匹配原则和执行计划,避免无效索引与回表开销。
  3. 并发问题应先明确共享状态和一致性边界,再选择锁、CAS或队列。线程池需要根据任务是CPU密集还是IO密集设置核心线程数、队列容量和拒绝策略,并监控活跃数与队列长度。