网易面经
更新:9.13挂
部门是网易云音乐部门,面试官一上来就跟我介绍了部门的业务。是做推荐这块的业务,就是网易云主页的推荐的音乐,他说会根据推荐算法计算出来的画像来推荐,然后部门就做一些数据的处理。
说一下题外话,我发现面试我的面试官都很喜欢问我项目。
题外话结束,面试官一上来和我聊了部门业务,聊完后说走一下固定流程,做自我介绍。
1、你这个精研社是一个什么背景?上线了吗?用的技术栈很多啊,都有用到吗?一一介绍一下吧。
(我自己简历上写的哪些技术栈记不太清了,只有一点印象,简单说了一下吧。这里还是比较煎熬的,说一下Mysql存了哪些数据,为什么要用mongoDB,redis存了什么数据等等)
2、你负责项目的哪些部分?
3、你用了kafka流失处理,说一下过程?这个时间窗口内会有多少收益呢?
(没计算过)
4、你用redis实现了分布式锁?怎么实现的?
5、柠檬餐厅上线了吗?
6、Redis+lua脚本?怎么解决的?为什么要用lua脚本?他有什么特性?用lua脚本就不会出现数据不一致吗?
(我说保证多条redis操作的原子性,面试官说不是,我一脸懵逼,只能说自己没去仔细了解。)
7、多线程有了解吗?说一下。
8、线程池是怎么工作的?
9、核心线程数和最大线程数的区别?
10、我现在有个key-value的结构的数据,怎么保证顺序呢?或者说用哪个集合?
11、LinkedHashMap为什么能保证顺序?
12、我们来做一道简单的算法吧,英文中小括号和大括号的括号匹配。
手撕不难,但是原本用的是Java提供的linkedlist实现的栈,但是我不知道网易那个编译环境是怎么回事,写出来报错,然后用stack也不行,我就想着自己手写一个栈,然后……没写出来,捣鼓了半天,我问面试官这个为什么会报错,他说直接写就行。
然后我就硬着头皮用stack实现了括号匹配,面试官说能不能运行?我觉得应该不能。
然后点了运行果然不能,而且编译结果也没有,就是一片空白。
折腾了半天,然后面试官说说一下思路,就结束了。
反问:
咱们网易云用户量多少啊?
月活几亿用户。
主要用哪些技术呢?
以Java为主(还说了一些组件,但是我忘了)
我还有哪些需要提升的地方?
广度有了,深度不够。当然也可能是因为我们才面试一个小时,没有完全体现你掌握的东西。
面试官还挺好的,主要是我最近都没有学习和复习,在实习,问到一些我不会的有些紧张。我觉得自己回答的挺烂的,过不过无所谓了。
总结一下,我觉得面试最重要的是体现你的思考,还有就是你的深度,为什么要这样做,这样做的好处,底层是如何实现的。
在学习的时候带着这三个问题,并且记录下来,成为自己的东西,就能给你带来很大的提升。