前几天刚完成美团秋招java的三轮视频面试,现在写下面经复盘下,顺便许愿美团offer。
一面 40分钟
当天下午刚投的简历,晚上美团面试官就打电话过来约视频面试了,感觉有点小惊喜(其他几家居然还要笔试。。。)。约好了第二天晚上7点在牛客网上视频面试,面试官非常准时,然后就开始了面试。一面问的还是比较基础,没有很难的问题,基础ok的话应该都能过。
简单介绍了一下项目
能说一下redis有哪些数据结构吗
分别说下这些数据结构在底层都用了哪些数据结构
redis大key问题有什么影响可以说下吗
说一下你熟悉java集合有哪些
ConcurrentHashMap和HashMap有什么区别
HashMap为什么不是线程安全的
为什么不直接给方法加个锁就完了,还要用ConcurrentHashMap
既然你都说了volatile了,我正好想问这个,你说下volatile有什么作用吧
java虚拟机的内存分区
虚拟机的垃圾回收算法
cms回收器
数据库的acid说一下
数据库隔离级别说一下
tcp三次握手说一下,并且说一下为什么需要三次握手
最后是一道算法题,给两个string代表的数字,实现数字的加法。这算法题太良心了,比头条的简单多了...
二面 60分钟
一面完之后,面试官问我还能继续面吗,我说可以,然后二面面试官就预约了八点的面试。二面问的问题感觉也都很基础,但是感觉二面更注重总结,问的更抽象一些。我答得不是很好,感觉这方面还需要加强,注意总结各个知识面。
说一下java的集合
哪些集合你比较常用的
为什么常用这ArrayList和HashMap
这里我竟无言以对,为什么常用说不清楚...
ConcurrentHashMap和HashMap有什么区别,为什么HashMap不是线程安全的
Java的线程了解吗,说说看
感觉问的很宽泛,我一时不知道说什么,说了一下线程的几种状态 (感觉平时还需要按知识面来整理一下各个知识点,被问到这种问题不至于不知道怎么说)
多线程需要注意哪些问题
什么情况下会有线程安全问题,可以举例说下吗
我没说出来...平时遇到确实少,而且一般比较复杂不好说清楚,感觉可以写个demo来举例
volatile有什么作用
java的string熟悉吗,说说看
又是这种开放性问题,不知道该说啥,就说了一下string实现是一个char数组,还有string的常量池
java的异常熟悉吗,说说看.
数据库索引,说说看
你知道哪些索引
b树索引和hash索引这两种索引有什么区别,优缺点
MyIsam存储引擎了解吗,说说看
innodb为什么使用聚簇索引
写了一条sql
算法题:判断一个链表是否有环
给出100亿个ip,找出十条出现次数最多的ip
最后问了一下为什么不在原来的公司转正
三面 67分钟
第二天就来面试官就来约了面试,约的还是晚上的视频面。三面主要围绕着项目问了很多,另外聊了一下人生,三面应该都是差不多的套路。感觉三面挺顺利的,和面试官聊的很开心,虽然面试不一定能通过...
聊了一下项目有哪些rpc接口,上下游关系,存储架构,数据量之类的,期间遇到一些技术会问到相应的知识点。
面试官:kafka消息怎么保证它的顺序性
我:kafka单个分区内都是有序的,如果只有一个分区的话,肯定就是有序的
面试官:但是一般不止一个分区吧,还有别的办法吗
我:可以把同一个用户的消息都发到同一个分区,这样也是顺序的
面试官:怎么实现这个,怎么知道消息发到哪个分区
我:可以实现生产者的分区算法,做一个哈希取模
面试官:好,这样之后能保证消息的顺序性了吗
我:如果一个用户的两个请求分到了两台服务器上,那这顺序好像也没法保证,只能加锁来控制
面试官:redis大key问题,具体指什么可以说下吗
我:一个redis key保存了很多数据,比如一个zset有上万个元素,如果一次性查出来,可能需要很长时间。并且redis是单线程的,还会阻塞其他请求
面试官:redis为什么设计成单线程的呢
我:为了简单吧,并且redis足够快,单线程就够用
面试官:那如果设计成多线程,会复杂在哪里呢
我:要考虑线程安全和多线程的性能问题
面试官:性能问题是指?
我:比如要加锁,开销肯定很大
你的服务如果某天QPS突然涨到了两倍,要注意哪些地方
问完项目,好像就问了一个技术问题,问了一下volatile(连续三面都问到了)
然后是一个算法题,把一个二维数组看成一个正方形,按对角线打印所有数字,也就是斜着打印,比较简单
写完算法题之后就开始聊人生
实习过程中有没有遇到什么困难,或者说做了什么事情比较有成就感
实习和在学校不太一样,有没有不适应的地方
实习加班很多,压力很大,怎么看待这个问题
实习期间需求都是怎么分配的
为什么不在原来的公司转正
秋招也快结束了,手里有没有其他offer (我说美团是我第一家面试的公司...)
hr面 20分钟
三面后隔了一周左右等来了hr面,主要就是聊聊人生
成绩排名,研究生是考研的还是保研的
实习时和mentor是怎么合作的
遇到问题怎么解决的
项目有哪些挑战
工作和学校有什么不一样的地方
描述自己的性格
自己有哪些优缺点
对美团的了解
有哪些好的习惯
学习的方式
为什么不转正
在北京工作是否方便,家人是否有意见
总结
1.二面感觉面的不太好,平时需要根据面来总结学到的知识点,比如说到多线程就要知道有哪些东西
2.Java基础问的还是比较多,基本功还是需要更扎实
3.三面好像都是问项目聊人生,这些问题可以提前准备