美团校招后端(Keeta方向)一面真题全复盘|含考点解析亲历 · 8月22日|23题完整版
美团后端开发工程师校招一面全题解析:包含22道真题+1道算法题,涵盖项目考察、并发/中间件、存储/数据库、底层原理四大模块。重点考察Redis分布式锁、线程池调度、分表方案等技术难点,提供高频考点地图和备考建议。面试通过率极低,但掌握这些真题可显著提升成功率,适合备战大厂后端岗位的求职者参考学习。
投递信息
|
公司 |
美团(Meituan / Keeta 出海方向) |
|
岗位 |
校招 · 后端开发工程师 |
|
时间线 |
8.22 一面 → 8.23 通过 → 8.27 二面 → 9.1 发意向 |
|
面试轮次 |
本文为一面全题(共 22 问 + 1 道手撕算法) |
|
一面通过率极低,但我拿到了 offer。 把这 22 道真题留给备战的你,全部背完至少值 5 个面试机会。 |
一、开场 & 项目考察(Q1–Q5)
|
Q1 自我介绍 |
考察点:考察表达结构、核心亮点提炼,建议 1.5~2 分钟,STAR 结构
|
Q2 项目来源:实习 / 实验室 / 个人兴趣? |
考察点:考察主动性与成长动因,回答要体现「主动选择」而非「被动接受」
|
Q3 介绍第一个项目:背景 + 调研选型 + 技术框架 |
考察点:考察技术视野与系统思维,重点讲清「为什么这么选」
|
Q4 你在项目中担任什么角色 / 负责哪些模块? |
考察点:考察独立贡献度,避免说「我们团队……」,要突出「我负责……」
|
Q5 项目中的难点是什么? |
考察点:结合 Q4 的模块深挖,提前准备 2~3 个有技术含量的难点,不要说「联调困难」
二、并发 & 中间件深挖(Q6–Q13)
本节是本场面试的重头戏,面试官从 Redis 分布式锁开始,一路追问到线程池,层层递进,务必打通「锁 → 多线程 → 消息队列 → 线程池」整条链路。
|
Q6 Redis 分布式锁怎么设计和使用? |
考察点:考察 SET NX EX + Lua 脚本原子性 + 看门狗续期,Redisson 原理要会说
|
Q7 Java 中如何解决多线程竞争问题? |
考察点:synchronized / ReentrantLock / CAS / Atomic 类,从 JVM 层面到 AQS 都要准备
|
Q8 MySQL / Redis / 消息队列三种方案在解决多线程竞争问题中的差别? |
考察点:考察方案横向对比,从性能、一致性、可用性三个维度展开分析
|
Q9 Kafka 会导致拉取到重复的任务吗? |
考察点:⚠️ 高频陷阱题!Kafka 的 offset 提交机制:未提交 offset 的消息同一 consumer group 内不会被重复拉取,但消费失败未提交会导致重复,幂等消费是关键
|
Q10 一个请求过来,后端如何分发处理?(延伸到线程池) |
考察点:考察 Web 请求处理链路:NIO → Selector → Worker 线程池 → 业务处理
|
Q11 线程池的调度逻辑? |
考察点:核心:coreSize → 队列 → maxSize → 拒绝策略,结合源码 execute() 方法讲
|
Q12 项目中线程池使用到的阻塞队列是哪种? |
考察点:ArrayBlockingQueue / LinkedBlockingQueue / SynchronousQueue 的区别和适用场景
|
Q13 无界队列会产生什么问题? |
考察点:OOM 风险!任务堆积 → 内存耗尽,生产中禁止使用无界队列是规范
三、存储 & 数据库(Q14–Q18)
|
Q14 项目中遇到的最大的困难? |
考察点:结合存储/性能瓶颈展开,配合后续分表问题过渡自然
|
Q15 为什么采用滚动分表?与其他方案比较的优点? |
考察点:对比:MyCat hash 分表 / 时间维度归档 / 冷热分离,结合业务写入特征分析
|
Q16 如果使用 MyCat 按 ID 分表(不做 hash),就不会有数据倾斜? |
考察点:⚠️ 追问陷阱:ID 自增分表理论上均匀,但仍有「热点 ID 段」与「跨分片查询」等问题,回答要辩证
|
Q17 唯一索引建立在哪个字段上? |
考察点:考察索引设计,说清业务唯一键 vs 主键索引的区别,以及联合唯一索引的场景
|
Q18 UUID 与自增 ID 的区别? |
考察点:UUID:无序、写入性能差(B+树页分裂)、存储大;自增 ID:有序、写入友好、主键紧凑
四、底层原理深挖(Q19–Q21)
|
Q19 Redis 如何保证原子性?Lua 脚本为什么能保证原子性? |
考察点:Redis 单线程执行 Lua,整个脚本期间不会插入其他命令,等同于 MULTI/EXEC 但更强
|
Q20 Java 中 Map 数据结构 → 为什么用红黑树?只用数组不用链表和红黑树会有什么区别? |
考察点:从读写性能分析:数组 O(1) 随机访问但冲突退化;链表 O(n) 查询;红黑树 O(log n) 平衡;JDK8 链表长度 ≥8 转红黑树
|
Q21 对大模型的了解?大模型可以用在哪些场景(面试官要求大胆发散)? |
考察点:�� 加分题!从「已有场景」延伸到「创新场景」:代码生成、智能客服、数据分析 Copilot、A/B 测试辅助、API 文档自动化等
五、手撕算法(Q22)
|
Q22 合并两个有序链表 难度:⭐⭐ LeetCode 21 考点:链表操作 + 递归/迭代双解法,注意 dummy 节点技巧,边界条件(null 处理) 建议:10 分钟内写出迭代解法,追求加分可再给出递归版本并分析空间复杂度 |
六、备考建议 & 高频考点地图
|
模块 |
核心准备要点 |
|
并发 & JUC |
线程池参数 / AQS / ReentrantLock vs synchronized / CAS |
|
Redis |
分布式锁 / Lua 原子性 / 数据结构底层 / 持久化 / 缓存穿透 |
|
Kafka |
Offset 提交机制 / 幂等消费 / 分区与消费者组 / 顺序消费 |
|
MySQL |
索引设计 / 分表方案 / 事务隔离 / MVCC / 慢查询优化 |
|
算法 |
LeetCode 链表 / 二叉树 / 动态规划 / 滑动窗口 各练 15 道 |
|
大模型加分 |
了解主流 LLM 应用场景,准备 2-3 个结合业务的落地想法 |
如果这篇面经帮到了你 ��
点赞 + 收藏 + 关注,我会持续更新美团 / 字节 / 腾讯 校招后端面经
评论区留下你的面试经历,一起上岸!
更多推荐
所有评论(0)