美团到店一面面经

面试官先自我介绍+部门业务介绍了10分钟跳过我的自我介绍直接开始项目拷打项目穿插八股

  1. 服务模块的拆分
  2. 各个模块之间是怎么个关联关系的?
  3. 模块跟模块之间,在相互调用关系的时候,底层数据存储是单一的,还是说共用的一个数据存储?
  4. 主从是怎么优化的,读写分离?
  5. 水平拆表是有必要的吗?
  6. 我说调研的时候一张表存2kw,这里被面试官揪着不放面试官要算一下3层b+树可以存多少,面试官说他记得十几亿是可以的我也不知道,下来算一下
  7. 为什么索引结构选b+树不是b树
  8. b+树io开销小,本质是什么?答了树的高度,面试官不满意
  9. 引导:io开销是面向谁的? 内存还是磁盘?答了mysql的页 和 缓冲区b树的话是一个页可以放索引,也可以放数据在b树查找的时候,,这个页里面,就是它不在那个缓存里面,然后它可能这个时候需要去吐磁盘里面读没答到点上!!面试官出马:就是说mysql的页是4k,b树一个页可以放索引和记录,记录比较大,一个页存的就很少;在相同数据量下,需要频繁从磁盘把页读到缓冲区,增加了io开销在这里 其实可以引出一下之前分析的一个深分页的问题,其实和这个很类似~~~b+树是非叶子结点都是存的索引,一个页可以存的索引更多;

10. 磁盘调度的最小单位?java调度的最小单位?最小的存储单位是什么?

11. mysql的锁有哪几种?

基本锁的种类,穿插了一个之前遇到的插入意向锁的例子

12. 在什么场景使用间隙锁?答了要解决部分幻读的场景

13. 举了一个例子,先使用 update 上 间隙锁,再insert 往间隙中插入记录,是否成功? 反过来会发生什么?第一个简单假如 是update id=3~id=7,insert id=5的记录第二个墨迹半天,说了可能,会insert 锁住 id=5的记录,update 会 分别锁住 3 ~5和5~7的间隙面试官出马:一些不同的场景,可能结果操作会不一样其实面试官相问隔离级别!然后他说他也不知道具 体会发生什么情况 !!! 🌞[grey]我说我下来再实践一下,下来试了一下,加锁比较复杂

14. 代码里面也用到了Redis,用在什么场景?

15. redis为什么这么快?

16.多路复用,它复用的是啥? 答了bio和nio模型

17. 单线程处理和io多路复用是冲突的吗?

18.抛开多路复用,假如redis出现了多线程管理的问题,那它是不是就不是单线程了吗? 答不是的,单线程执行命令 好家伙,面试官想问这个!!! 面试官说io多路复用和单线程没关系,是两个东西,🌞[grey]

19. Java 里边经常也会提到锁,你用过哪几个?

手撕

取出nums中前k个最小的数

说用堆,面试官说做复杂了,后面又说了直接排序,分别分析了两种解法的时间空间复杂度面试官说:其实就是一个是占用cpu多,一个是占内存多

反问:面试官提的建议

  • 知识的广度
  • 学的时候尽量把一些科目给它串起来,不要是割裂的去学这个东西

反思总结:

  • 有一些细节答的不够全面

#美团##校招##后端##offer来了##软件开发笔面经#
全部评论
我去好难啊,过了吗lz
点赞 回复 分享
发布于 2024-09-24 09:31 北京
有点难
点赞 回复 分享
发布于 2024-09-19 21:55 上海

相关推荐

03-24 21:23
已编辑
郑州大学 Java
点赞 评论 收藏
分享
评论
1
21
分享

创作者周榜

更多
牛客网
牛客企业服务