投递信息

公司

美团(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 个结合业务的落地想法

如果这篇面经帮到了你 ��

点赞 + 收藏 + 关注,我会持续更新美团 / 字节 / 腾讯 校招后端面经

评论区留下你的面试经历,一起上岸!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐