一面
- 先自我介绍,由于简历上写了熟悉GC,所以面试官上来先让我谈谈GC。
第一次被问这个,有点不知道怎么开头,犹豫了几十秒后,我把我当时记得的主要内容从头到尾说了下,然后说“大致只了解这些”...面试官get到我意思后,放过了我,流汗~ - 学过操作系统,谈谈信号量,信号量如何访问(当时我一直以为没明白他的意思,以为要问操作系统硬件互斥机制,后面才明白要问PV操作),PV具体如何操作
- Redis的持久化机制有哪些?Redis如何进行快照?快照快结束时,发生写操作,写操作的数据是否会保存到快照?(我回答不会,快照的数据都是开始快照那个时刻的全量数据)
- B+树的时间复杂度,为什么是log(N)(当时不清楚怎么回答,胡乱说了下),B+树上查询数据的流程
算法题:
- 旋转打印M*N二维数组(快速过)
二面
- 上来没让自我介绍,直接问项目,在项目学到了什么,然后我babababa...乱说了一通
- 谈谈RPC的工作过程
- nginx的5种负载均衡算法(当时忘记了,直接说的是我项目中实现的负载均衡算法)
- 进程通信方式有哪些?其中哪个速度最快?
- get和post请求的区别(好久没问这个问题了,只说出了两种方式作用和参数的区别)
算法题:
- 毒蘑菇(两问,一问贪心,一问动态规划)
当时有点蒙,面试官让我讲思路,我想了半天也没头绪,在面试官提醒下换了一题,面完之后再想想那题,我觉得第一问想出来不难的,第二问想了较长时间,不清楚对不对 - 实现 double sqrt()函数
心里有点慌,脑子不在状态,结果写第二题调了好久,不过还好最后调好了
当时面完就觉得很可能没了,不过下周一的时候HR通知过了,我一脸庆幸
三面
应该是leader,说话很温和,当我不太明白问题的时候,会很耐心地尝试换下说法引导我,是我至今遇到的一个最nice的面试官。
- 先让我自我介绍下,然后让我谈谈如何学习一个新技术,我长篇大论了一堆,然后他帮我总结成了几句话,让我觉得自己以后要学习下如何简明扼要==
- 谈谈项目中几种序列化方式的不同点
- 为什么需要序列化?(因为网络底层传输的是比特流)
- 谈谈为什么会发生粘包黏包?
- 为什么网络中会发生丢包?(接收到的分组校验出错、分组在网络中超出最大存活时间、路由器接收分组数量达到上限后,会丢弃多余分组)
- 为什么会发生网络卡顿现象?(网络拥塞)TCP为什么可靠?
算法题:
- 求数组的最大、最小数对的个数
面试总结:
1,多刷面经
总结他人的成功经验,有极大的几率会遇到相同的面试题!
2,算法是重中之重,现在的中小厂子都开始看中算法,更别说头条这种头部大厂了,在这边推荐小伙伴们学习左程云老师的算法,通俗易懂,非常的nice,分享一下左程云老师的PDF,都是力扣上经常面试的题,也省的大家受到算法的苦
还有面试资料:
1000道Java工程师面试题+答案PDF共计有485页,几乎涵盖了现在Java面试的所有考点,简直不要太香!
一键三连+评论,然后添加我的VX(tkzl6666)即可免费领取。