美团,高德一面(都是日常实习)
12.12面了美团的酒旅增长和高德的出行项目实习生,面完我的评价是还是菜,还得练。
以下是印象深刻的问题:
美团:
1.先写了算法题,lc718。滑动窗口遍历两遍,倒是不难。
2.实习+项目简述。说你印象最深刻的项目,实习中的工作和收获,实习印象最深的一次收获。
3.场景题,假如调用下游服务的时候,下游服务超时未响应,我这边认为调用失败了,但过了很久下游服务成功了,导致数据不一致,怎么处理。(当时差不多回答了两个方向的,一个方向说在这种情况下接收到下游调用成功的消息时,我这边进行补偿机制,让数据一致。另一个方向说进行定期对数据库的方式,使数据一致。这两个方向分别用于是否需要强一致的场景。至于为啥不用分布式事务,面试官说如果都用分布式事务性能太差,不考虑分布式事务的情况下进行思考)
4.kafka相关知识,实习项目的幂等性,假如有一个新增数据的行为的幂等性。kafka怎么顺序消费,消息积压了怎么处理。
5.redis数据类型,zset底层跳表的插入,查找,删除怎么做的。
6.消息队列保证mysql和redis缓存一致性问题(基于我项目问的)
7.分布式事务相关问题
高德:
1.实习+项目简述。说你印象最深刻的项目,实习中的工作和收获,实习印象最深的一次收获。然后问了问我的科研项目是怎么做的,我写了三个项目,一个实习相关的,一个网上项目,一个科研项目。
2.select a,b,c from xxx where a = x and b > x and c = x,怎么创建索引。select a from xxx where b = x order by c,怎么创建索引。
3.常见的序列化协议(就知道个json,别的不会)
4.kafka相关问题,假如一个topic,四个分区,八个消费者,怎么处理;假如kafka和消费者没有成功消费,即没收到syn,那重试的是谁。kafka幂等性问题,重复消费问题,失败重试问题。
5.mysql的底层执行一个delete,执行过程。delete和truncate区别联系
6.mybatis的$和#的区别,为什么会导致sql注入,#怎么防止sql注入的
7.threadlocal底层原理,为什么key是弱引用,value是强引用
8.JUC包的lock的lock和trylock方法
9.lc删除K个数字后使数字最小(和前两天字节的lc一模一样)
10.有一个消息发送接口MessageService.send(String message),每次消息发送需要耗时2ms;
基于以上接口,实现一个批量发送接口MessageService.batchSend(List<String> messages);
要求如下:
1)一次批量发送消息最大数量为100条
2)批量发送接口一次耗时不超过50ms。
3)要求返回消息发送是否成功的结果。
先更新后续吧,两个都寄了。
感觉的出来俩面试官对我是有一定失望的,我自己也比较迷茫,到底该好好复习啥啊,每一个面试官喜欢问的,看重的点都不一样,正好问到你不清楚的、没准备好的就很难受。场景题其实比我上面面经写的更多,有很多都记不太清了所以没写。
12.17面快手本地生活。只能说我都不抱什么希望了,年前找不到实习就回家过年吧。感觉自己现在有点啥都知道一点但什么都不精的感觉,也或者是年末不缺人所以要求高,也可能是运气不好正好能问到不会的,继续沉淀吧,谁知道呢。