3.26美团后端开发面经

美团 · 后端开发 · 2026-03

《面试题目》

时长:75min

  1. 基础知识:
    • 讲一下Java的锁机制。
    • 讲一下MySQL事务。
  2. 项目经验:
    • 项目深度拷打,针对简历细节进行全方位提问。
  3. 技术测试(4题):
    • 给一段Java网络编程代码,找出其中的错误。
    • 给若干个MySQL查询语句,找出不能使用索引的情况。
    • AI Coding:使用Java实现基于令牌桶的限流算法。
    • 算法题:给定一个01数组,求满足0和1个数相同的最长连续子数组的长度。

《参考解析》

  1. Java锁:重点掌握synchronized与ReentrantLock的区别,偏向锁、轻量级锁、重量级锁的锁升级过程,以及CAS机制和AQS原理。
  2. MySQL事务:核心在于ACID特性,以及四种隔离级别(读未提交、读已提交、可重复读、串行化)。重点理解MVCC(多版本并发控制)如何解决幻读问题。
  3. 索引失效:常见的包括:对索引列做运算或函数操作、隐式类型转换、使用!=或<>、使用like以%开头、or连接非索引列等。
  4. 令牌桶算法:定义一个桶存放令牌,以固定速率往桶里放令牌,请求进来时先从桶中获取令牌,如果桶满则丢弃令牌,获取到令牌即允许通过,否则限流。
  5. 最长子数组算法:将数组中的0视为-1,问题转化为求和为0的最长连续子数组。使用HashMap记录前缀和及其首次出现的下标,通过当前前缀和与HashMap中记录的下标差计算长度。