面试复盘|美团-优选

美团-优选

一面-816-1h左右

1.自我介绍。

2.Concurrent包用过没?用过哪些?说下ConcurrentHashMap的构造,为啥可以保证多线程安全?加锁加的是哪,扩容时怎扩容?
这里其实知识点特别多,建议大家从HashMap1.8开始看到ConcurrentHashMap,比如为啥HashMap1.8后结构的变化(桶数组),链表,红黑树。为啥必须是2的次方的初始化,为啥初始是16,链表是8(即注释里面那一大块数字表示的其实是概率),扩容的方式和触发条件,为啥用尾插。然后ConcurrentHashMap的volatile体现在哪,锁加载哪,那后扩容是哪个线程负责的?扩容在什么情况下会两个线程进行。
3.网络TCP和UDP的区别?使用场景?UDP一定不可信吗?为什么三次握手,为什么四次挥手?面向场景可以具体一点吗

4.操作系统:内存页面换出算法

我答了LRU和LFU,还有先进先出,问还有吗?我忘了。这个还有要别的吗

5.问问LRU和LFU的具体实习?

我说了LRU的两种实现,LinkedHashMap的实现、还有HashMap中套双向链表的实现。然后就问我LRU,尴尬的地方来了。
LFU这里确实记不清了,只记得是双HashMap实现,但是我记得双HashMap实现时间复杂度都是O(1)啊,面试官非说不可能O(1),一定是log(n),要是O(1)能引起业界的变革。下来查了一下,确实是O(1),尴尬。具体实现方式大家看下LeetCode,双HashMap确实是O(1)啊。

6.为啥用线程池?多线程和多进程切换的区别?

我回答线程的创建和销毁有代价,频繁创建不合算,所以用池化的思想。然后问我除了这个以外呢。我答无法控制线程数量吧。
多线程和多进程这里从单个进程的多个线程进行回答即可。
7.问Redis的过期?和内存淘汰策略(就LRU和LFU在Redis中的具体实现)。zset的实现。
跳表,跳表的实现。过期A开题和V开头检查范围的不同。

8.问我MySQL几种隔离级别?然后问我分别解决了啥?让我举例子不可重复读,问不可重复读和脏读的区别?这里其实我忘了细节了,尴尬,一般问的是幻读和不可重复读的区别,我想了半天忘了。

其实下来一查,脏读是A一个事务没提交B事务就读到了,不可重复读是B事务过程中,A事务调交前和A事务提交后读取同一列的值得到的结果不一样。主要就是看A提交与否。

9.然后问幻读咋解决?

其实这里有很大的歧义,从理论上讲InnoDB的不可重复读模式解决了一部分幻读,即快照读的幻读。但未解决当前读的幻读。上次京东面试官问我,我说不可重复读就解决了幻读,他说没有,不可重复读并未解决,要在业务上做保证。其实不就是加GAP锁和行锁变为next key锁么。即加for update等字段。因为我这样回答,京东以为我这里的知识点是混乱的,没给我解释的机会,自己在那给我说没解决,要在业务上做保证,就换下一个问题了。

我这里受京东影响说没解决,美团后面说其实算解决了,很尴尬。虽然存在当前读的问题。

但是我这次吸取上传的教训,咔咔咔提前把为啥没解决说了,面试官说他知道我明白。

其实这个问题大家一定要小心,我实习面美团的时候,知道这个,但是我当时对当前读和快照读的概念没有严格定义,从undolog的实现上解释了这个问题(其实是丁奇老师MySQL36讲里这里的内容),其实是正确的,但是面试官说和这个无关。(再次尴尬)。
追问我MVVC到底是用来弄啥的?我说一个乐观锁的实现,空间换时间,保证隔离级别的同时,还能提高并发程度。

10.撕题,最近公共父节点。

11.问你现在是否有offer。

12.反问。

美团优选,Java技术栈,to B。

供应链中招商家,对商家进行评级等各个模块。

美团的整体面试喜欢刨根问底,会反问你为啥,你答一部分会问你另一部分。但总体体验还行,没出现太大问题。

二面-818-45min左右

总体没问多少技术,一直问一些管理上的问题,包括技术踩坑。

1.自我介绍。

2.问我为啥技术栈有些多?我说项目原因以及甲方要求使得我不得不上手这些。

3.项目过程中沟通问题?最不能忍受同伴的编程问题?

4.如何和甲方沟通?
5.项目中为什么会出现跨域?说一下具体场景?
6.同伴沟通的新的。

撕题:

1.跳台阶。2.合并区间。

反问技术栈:SpringBoot做了些封装。

HR面-818-30min

效率快得和网上传闻的字节一样(而我字节很慢)。

1.自我介绍

2.职业规划

3.意向城市

4.本科专业和学校

5.已有offer

6.家庭情况

7.对美团的看法

8.工作环境和节奏的要求
反问我问了工作地点,朝阳区望京附近。然后问多长时间能出结果?3-5天。

大家觉得这HR面一般反问问啥?

还有就是碰见这种面试官认知问题,应该坚持吗?

加面-0902-25min

1.自我介绍。

2.撕代码。十进制有几个1.

3.说一下你项目中比较复杂的东西。

4.别的项目中复杂的东西,踩得坑。

5.职业规划。

6.反问:

对自己认知要清晰,清晰之后进职场就朝着这个方向前进就行,戒躁戒躁。你还是挺清晰的。
应该是个大佬,本来约在周一,结果不停地有会就一直改时间,到周四才面上,但是人很不错,而且估计30岁出头,牛啊。
9.8发意向书了。


#面试复盘##面经##校招##美团##Java工程师#
全部评论
楼主太强了,很羡慕
1 回复 分享
发布于 2021-08-18 20:24
lz,问了啥时候出结果没
点赞 回复 分享
发布于 2021-08-18 18:04
concurrenthashmap扩容是哪个线程负责的呀
点赞 回复 分享
发布于 2021-08-18 20:25
想问下你一面结束啥时候发的二面通知呀??
点赞 回复 分享
发布于 2021-08-18 22:21
这么详细,佩服!!!
点赞 回复 分享
发布于 2021-08-18 23:31
页面置换算法 OPT(无法实现) FIFO LRU LFU CLOCK/NRU
点赞 回复 分享
发布于 2021-08-18 23:36
赞!分享面经的都能拿到好offer
点赞 回复 分享
发布于 2021-08-19 11:33
借楼许愿
点赞 回复 分享
发布于 2021-08-19 11:33
楼主意向地是哪
点赞 回复 分享
发布于 2021-08-19 17:33
楼主有消息了吗
点赞 回复 分享
发布于 2021-08-23 08:54
可以问问部门的情况,晋升机制,对人才哪方面能力比较喜欢 加油楼主,欢迎来美团做同事,冲鸭,奥利给,祝楼主好运 借楼:美团内推,使用内推码 WncroPl(注意是小写的L,不是大写的i) 进行内推,选择基础研发平台 北京,数据开发直接内推到组内。目前数据开发岗位很缺人,欢迎投递,可以直接内推到组内进行面试,建议早点投递,晚投递可能部门没有hc了
点赞 回复 分享
发布于 2021-08-23 19:19

相关推荐

小红书 后端开发 总包n+8w+期权
点赞 评论 收藏
分享
ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
8 58 评论
分享
牛客网
牛客企业服务