伴鱼二面~感觉不稳,攒攒人品
也看了其他老哥的面经,也分享分享我的面经吧
最开始准备一大堆JAVA和操作系统的知识。
然后下午看了下其他老哥的面经,发现基本不问这两个,更多的是计算机网络和数据库
又临时看了几眼计网和MySQL相关的
下面就放自己的回忆的面试经历吧
1.自我介绍
2.基础知识
第一大部分是计网:
1)访问一个网站的流程(一上来有点紧张,说的稀里糊涂的)
2)DNS解析域名的过程,这个之前看过,但是没准备,有点遗忘了
3)握手挥手(我说需不需要画图,面试官说不用,所以我就脑袋里想象着那张图开始说,也不知道有没有把seq,ack说错)
4)TCP UDP的区别
5)TCP的窗口如何设置
然后突然问了下多路复用,select和poll的区别
然后是数据库:
1)MySQL的索引有哪些
3)你说到了聚簇索引,聚簇索引和非聚簇索引的区别
2)B树和B+树的区别
4)你所谓的索引优化是指什么(一个查询如何使用到索引,然后说了下索引失效)
redis:
1)你说你了解redis的主从复制,讲讲吧(说了下全量复制和部分复制,redis的持久化RDB和AOF,redis的哨兵)
2)redis的集群呢?(讲了下redis集群的槽,集群之间的互相发现,集群节点宕机后的故障转移等)
3.然后聊项目
4.情景题
如果你要做一个秒杀系统,应该怎么做。这一点和面试官交流时不在同一条线。
面试官想问的是用户购买一定数量的产品,需要保证数据的一致性,就是用户购买后库存-1,取消则库存回滚,一个用户只能买一个,即使系统出错的情况下,数据也不会出错
我脑袋有点懵,我以为的秒杀系统,是如何保证高并发的情况下,很多人抢购有限的商品的情况下,需要怎么处理。
当时语言都有点混乱了。。。
5.最后反问了一些问题,面试官给的反馈挺好的,面试体验也很好。
就是自己有点拉跨,感觉平时记得的东西,一到要说出来的时候就有些卡壳,比如说着说着,发现还有一些点没说,也不知道要不要补充上,很难受。