面试复盘|美团-优选

美团-优选

一面-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

相关推荐

和蔼:在竞争中脱颖而出,厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了
点赞 评论 收藏
分享
8 58 评论
分享
牛客网
牛客企业服务