美团面经汇总

本文最后更新于 2 分钟前,文中所描述的信息可能已发生改变。
详情

【一面】

  1. 自我介绍不问实习和项目,上来就全八股
  2. 为什么 String 不可变,StringBuilder
  3. synchronized 和 Reentranlock 详细介绍,哪些情况优先使用后者,或者说为什么解决什么问题而存在
  4. 上面锁的话,有什么注意事项
  5. join 类型
  6. sql 怎么优化
  7. 查看执行计划
  8. explain 的属性
  9. 自动装配原理,流程
  10. 设计模式应用,好处
  11. 如何处理异常
  12. 哪里会打印日志
  13. 遇到性能瓶颈怎么解决核心代码模式,手撕旋转数组

【二面】

  1. 自我介绍
  2. 实习相关
  3. 实习里面,有个点有串行执行,为什么不改成并行
  4. 如果这里成为系统的瓶颈,你怎么处理,异步失败了怎么处理
  5. 线程池
  6. 问我了不了解动态扩容的线程池(我说在看过美团技术的一个博客,讲解过,但自己没实现过)
  7. 对于抢票这样的业务,忙的时候要死,闲的时候也要死,你对于数据库的读写方式有什么考虑
  8. mysql 和 redis 的数据一致性问题(被打麻了,我记得看过的都是不存在强一致性的吧,都存在至少一点点时间的错误)

作者:美团专业内推官 链接:https://www.nowcoder.com/interview/center?entranceType=导航栏 来源:牛客网

详情

美团后端一面 3.24

  1. 你的项目来源是什么,怎么想的做这些项目
  2. 项目有哪些难点(没提前准备这个问题,只能说没有印象深刻的难点,遇到问题网上搜一搜就解决了) 3.打包成 jar 包之后这些依赖包的位置在哪呢,java 是怎么识别的4.介绍一下 jwt,他是怎么加密的5.jwt 和传统的 cookie+session 有什么区别呢6.为什么用 oss 存储,怎么不直接存在本地服务器 7.为什么用 websocket 8.介绍一下 springtask 怎么实现检测超时订单 9.用 mq 来解决这个业务的话,springtask 是不是就用不到了(不是,如果 mq 宕机了或者出现异常了可以用 springtask 进行兜底)10.介绍一下 redis 旁路缓存11.高并发查 redis 没有的数据怎么办(互斥锁)12.没获取到锁的线程怎么处理(重试几次,抛异常,或者用逻辑过期返回旧数据)13.redis 怎么实现分布式锁,setnx 有哪些参数14.redisson 是怎么确定锁的拥有者的15.介绍一下 jvm 内存模型
  3. 原空间存储的是什么信息呢
  4. 为什么原空间替代了永久代 18.说一下堆的分代回收机制吧19.有哪些垃圾回收算法20.标记清除是怎么标记的(怎么确定是不是垃圾?)21.说一下双亲委派机制,如果我自己定义了一个 java.lang.String,那能够使用吗?22.介绍一下线程安全的类23.concurrentHashMap 是怎么实现线程安全的?24.介绍一下 mysql 的索引吧25.说一下最左匹配原则26.redis 的内存淘汰机制27.介绍一下 redis 三件套

手撕:删除链表的倒数第 n 个元素 反问

作者:SillyBoyy 链接:https://www.nowcoder.com/feed/main/detail/b3b9e455a7d44d2dbe27b2daf49b28a8?sourceSSR=users 来源:牛客网


美团后端二面 3.26(已 OC)

  1. 介绍一下你的项目吧,你点餐系统的 jwt,redis ,Websocket 都是系统中干嘛的
  2. 有做身份鉴权,就是不同用户不同权限的(没有,用户在用户端权限是一样的,商家在商家端也是)
  3. 你 redis 的缓存策略用的什么
  4. 先更新数据库,再删除缓存,那如果删除缓存失败了怎么办,会回滚吗
  5. 回滚的话那 redis 挂掉了整个系统不就不可用了吗,你怎么解决
  6. 不用 websocket 怎么实现服务端消息推送
  7. 你遇到的项目的难点
  8. 讲一下你的点餐系统的模块吧,说一下有哪些表,他们的关系是什么
  9. 介绍一下第二个项目吧
  10. 讲一下缓存击穿和缓存穿透的区别,怎么解决
  11. 介绍一下 redis+lua 抢优惠券怎么实现的
  12. 怎么实现分布式锁
  13. 你是通过什么途径学习的
  14. 数据库有哪些隔离级别,都是怎么实现的
  15. 介绍一下 MVCC 的 ReadView
  16. 除了 MVCC 还用了什么实现的 (select for update)
  17. 介绍一下当前读是怎么加锁的
  18. 什么时候临建锁会退化为间隙锁或者记录锁
  19. 那什么时候不会退化呢
  20. 我要建立联合索引(a,b)怎么考虑哪个在前
  21. 怎么计算字段的区分度
  22. 怎么找慢查询的问题
  23. Explain 的结果里面有哪些字段判断是否走了索引
  24. 语句走了索引,还是比我预期的多查了好几条,你觉得这是什么原因造成的呢
  25. 介绍一下 JUC 可重入锁的原理(AQS)
  26. 介绍一下 ReentrantLock 和 CountDownLatch 的区别
  27. Spring 是如何解决循环依赖问题的

手撕:数组 2 长度 n+m,m 个有序元素,后面 n 个 0,数组 2 有 n 个有序元素,要求把数组 2 合并到数组 1 (想原地修改,做了半天没 A 出来,最后换了个方法,开了个新数组归并写出来的)

作者:SillyBoyy 链接:https://www.nowcoder.com/feed/main/detail/a0cd1f45ce4c4c4baafcc9a0618918d2?sourceSSR=users 来源:牛客网

Common Resources for Materials Calculation