快手面经(1轮,大概率凉)
考研后太久没刷题了,最后的算法题没写出最优解。所以大概率凉了。下面是面试提及的一些问题:
在自我介绍的时候提及了熟悉mysql、redis。所以面试官也不问实习经历直接就开始了:
我介绍了一个索引优化的案例。然后面试官就开始抛问题:
- mysql底层存储是啥数据结构?你刚刚说是多路查找树,为什么要采取这样的结构?
- 查询利用索引的执行流程?
- 事务机制
- 锁机制
- ACID如何保证的?(应当是设计redo log、 undo log)
- redo log、undo log 各自发挥的作用
- redis。用过其中什么类型的数据类型?介绍一下它们底层的实现机制?(我是按照我看过的书答的,估计面试官也看过所以觉得再问下去也没什么意义后面就基本没问什么redis相关的了)
- 数据结构你学得怎么样?(估摸是我在介绍B+树的时候扯多了些)从存储和查找的角度介绍了一遍。第二次想把面试官扯进实习项目相关的经历中,还是失败了。(不过这次自身的原因多些)
- 引申到散列表如何解决冲突?各自的优劣?
- JDK中还有那些设计让你觉得印象深刻的?(我估摸是想引申到ConcurrentHashMap吧)我提了一嘴DelayQueue中的"leader-follwer"模型。想结合实习中的一个相关经历。可惜面试官没有上钩。
- 介绍一下TCC
- 计算机网络了解吗?我说没有上过这门课,都是自学。了解一些简单的东西:HTTP三握四挥,多路IO复用。
- 介绍一些多路IO复用?(本来还想扯一下select、poll、epoll但是面试官打断说其实现细节不重要)
- 边缘触发和水平触发?
- 聊一下JDK的并发编程吧。我一时也不知道从何聊起。介绍了Synchronize 和 Reentrantlock。以为面试官想问一些锁升级或者AQS。 但是提了一嘴面试官也不知可否。(我思考了一会提了一嘴乐观锁)。问了一下CAS。
- 设计模式?说了自己手动实现过的几个:单例、责任链、策略。详细介绍了其中一种,结合了专业课上过的UML。
- IOC容器简介。
- 算法题。
PS:面试官一开始一直在打哈欠。我也不太清楚他究竟听没听下去。但是在问题10我提到了那个模型之后他对着电脑操作了一下。当时心里还挺开心,想着这个模型毕竟冷门,面试官估摸在谷歌确定我没在乱吹。面试结束之后回想起来也许是工作上的事情也说不定。
不过不论在没在听,算法题没写出最优解估计就是挂了。
也想给还没上岸的友友们提个醒:还是要多刷题!
#0offer是寒冬太冷还是我太菜##你觉得今年秋招难吗#