当前位置: 首页 > 面试经验 >

美团日常实习后端一面

优质
小牛编辑
75浏览
2024-08-23

美团日常实习后端一面

美团日常实习一面,无八股无算法。
面试官人很好很温柔,我听不懂也很细心的给我反复讲场景,引导我回答问题可我太菜了,感觉凉了。
围绕简历我写的四个职责来问的,因此分为四块
1.打开项目(IDEA)讲解一下责任链和决策树是如何代码实现的。
场景问题:如果有一个业务a需要调用b,c,b,c又需要分别调用d,e和f,g,你会如何设计去实现这个逻辑(没太弄明白,我就说我项目的是决策树,单路的,后面不了了之)
2.代码讲解抽奖算法如何实现的以空间换时间,为什么要这样做?
场景问题:设计一个类,用来解决任务分配服务器的。有多个服务器,不同服务器内存大小不同,设计一个类来对任务进行分配,自己发挥设计输入输出。(直接idea现场编写,没写完后面讲了一下思路)
3.redis是如何使用的?电商场景下超卖问题如何解决?如何用代码来实现的延迟队列?
场景问题:如何实现一个类似支付时间十分钟的定时任务?
我:用延迟队列或者设置redis过期时间,定时任务一直扫描
面试官:这两个方案无如何做到每个任务过期实时响应?
我:应该无法实现~(不知道)
面试官:而且定时任务每次都去遍历全部数据代价太大,是否有更好的方案
我:按照时间排序的队列,队头是最先过期的。
面试官:对于实时显示时间倒计时遍历队列时间消耗问题,是否有更好的方案?
我:二叉树中的大小顶堆。(这里是面试官一直引导的)
4.看你使用到了MQ,没啥好问的,先说一下你为什么用吧。
场景问题:
面试官:如果我有一个队列存储的信息需要被多个消费者同时消费,如何保证同时消费以及顺序消费问题?
我:每个业务对接一个队列,交换机向需要信息的队列发送数据
面试官:实际场景不会这么做,代价太大。
我:那就每个业务通过一个变量记录读取队列的offset或者ID之类的。
面试官:如何存储这个变量能够做到崩溃恢复?
我:从MySQL猜到redis,最后说的本地内存。
面试官问我:了不了解zookeeper,可以了解一下
面试结束。
#Java面经# #美团# #日常实习#
 类似资料: