美团到店面经(主要是一面内容)
#23届秋招笔面经# 很多校友私信问我美团面试内容,楼主已经挂二面上了,且二面被问的已经对是否能从事这行存疑,就挑一面的重点内容和二面有参考价值的内容分享一下,希望能帮助到各位大佬。
一面(1h32min)
1. 自我介绍(本来还准备了拍公司马屁的话,结果说的时候结巴了,面试官整乐了,说我说的很“流畅”)
2. 面试官很抱歉跟我说系统里看不见我简历的具体内容,貌似把我的项目和技能信息弄丢了,确认了后确实丢了,从这里开始参考价值可能不大了
因为丢了信息,所以下面的内容全都是面试官的节奏开始
3. 画一下线程的生命周期(因为美团用的牛客平台,有在线画图类似processon的功能)java的划分和操作系统的划分
4. 问下线程生命周期转换的方法,说一个就行
4. Java集合问题,ArrayList扩容问题和ArrayList和LinkedList区别
5. Java集合问题,HashMap系列(就是常见的HashMap一系列问题,这里就不多说了,背过八股都懂)
6. 设计模式问题,用过设计模式吗?你了解那些设计模式说下?
这里说下,楼主面试前一天刚好在被Spring用到的设计模式,这里就顺口直接说了那里几个,给自己挖了天坑🤣
因为提到了职责链模式和模板方法模式,面试官说那行你写一个看看🤣我当时真的🤣我说写单例行不行,面试官说不行😂
职责链写的有点问题,平时调用的畅快真要写费劲,模板方法简单一些,在面试官提示下写对了
7. 你刚才说了你会单例,那你都会那种单例?饿汉、懒汉、静态内部类、枚举
饿汉写一个?静态内部类写一个?为什么静态内部类没线程安全问题?饿汉模式你为什么要在构造函数里先写判空的条件?
8. 项目信息丢了没关系,口述一下你的项目(类似秒杀的项目,下面用秒杀代替描述)
9. 秒杀在高并发环境下如何保证没有超卖问题的?用到MySQL的锁没?我说我用的是乐观锁,他追问那怎么解决忙等问题,我说是update做条件这种的,就没追问了
10. 你的项目QPS是多少?你在做项目的时候是如何测试的?(我答的JMETER)
11. 项目是直接把数据存在MySQL里的吗?我说用的Redis做的缓存,面试官说那问几个Redis相关问题
12. Redis常见命令有那些?Redis的基本数据类型有那些?Redis存入的数据都是字符串形式吗?
13. 说一个你熟悉的Redis数据结构实现?我答的是String类型,要说清楚具体的结构
14. Redis是如何判定过期key的?这里我当时紧张忘记了Redis会用两个dict分别存储全部key-value还有存储带TTL的key-value。就答的过期key处理方法去了
15. 这点单拿出来,因为我答错了,Redis过期key处理是什么线程处理的,我没记得学的时候说过,感觉是异步线程但没自信又说主线程😥
16. Redis分布式有哪些?主从下一定是主写从读吗?这里是不一定的,我当时也答错了,如果从结点都挂了主结点就得又写又读。此外,在springboot中是有四种主从策略的
17. Redis怎么判断有结点下线的?Redis集群模式下一定是一主多从吗?(这个答案我也不知道,有大佬能回答一下嘛)
18. MySQL ACID说下?好,那我出一段SQL考一下看看你是不是真正理解了
在RR隔离级别下,有如下SQL, time表示执行时间线
time 1 begin time 3 begin; time 2 select * from xxx where name="123"; time 4 insert into xxx values ("123"); time 5 select * from xxx where name="123"; time 6 update name set "456" where name="123"; time 7 commit;
问:
-
time5和time2的结果是否一样?为什么?
-
time6的update能否成功?为什么?
20. 索引的失效条件说下?
21. 出一个SQL考下你对索引的理解
千万级记录数据库,其中name是索引,问下面SQL的执行效率
算法题:快排🤣
select * from xxx where name like "%qqww"; select name from xxx where name like "%qqww"; select * from xxx where name like "qqww%";
算法题:快排🤣
反问:我说快凉了就不用问了吧🤣面试官没听清还部门介绍起来了
面试评价:一面的面试官和蔼可亲,人也很好,不会的地方会尽量鼓励思考,说错的地方也会重复强调以提示
二面(1h02min,寄面😥)
不提了,先问项目,然后变成运维面试了,各种崩溃宕机怎么处理,真的没实习过我真不会,太菜了
然后变成类似hr的聊天?你平时怎么学习的?今年有看过什么书?我说《深入理解JVM》,然后追问举例说从中学到了什么?我说对Java语言现象的理解,比如静态代码块为什么是线程安全的,但是他好像很不满意😥
没有手撕算法环节
反问:
我问你是怎么学习一个新框架的,开始给我炫耀起架构师的思维学习方式,然后说我们部门倾向这样的学生,我就知道大概率没了😥不过确实学习到了不少东西
希望能对各位大佬有帮助,大佬应该也不需要这个