一面
自我介绍
关于服务器开发和系统优化你有没有相关经历,专门学习过这方面知识?
MySQL
-
索引
-
InnoDB和MyISAM的区别是?这两种设计在时间性能上有什么区别?
-
对于一些零散的记录,要把它更新到磁盘中去,你认为是怎样的一个过程?在时间性能上会有怎样的问题?
设计模式都学过哪些?
读写锁,在什么时候用?
多路I/O复用模型,select、poll和epoll之间的区别?
手撕代码:有很多个英文句子,每个句子由不同的英文单词组成,请完成一个函数,输入为一个string数组,即几个英文单词,请从这很多个英文句子中查找出包含全部的输入单词的句子。
=》这个题目自己始终没有把时间复杂度降下来,但跟面试官进行了有效的沟通,自己提出了很多不同的方法。
你有什么要问的?
二面
自我介绍
介绍项目,关于项目深入问了一些问题:
-
项目中算法的步骤
-
项目中多线程的使用
-
为什么会选择Qt框架?
-
你项目中的数据应当是一个实时计算的场景?为什么不考虑使用flink呢?
-
线程池?
-
对于开闭原则的理解?
-
项目中没有使用Linux下网络编程,文件I/O吗?
-
内存泄漏和内存越界问题
MySQL
-
有哪几个存储引擎
-
InnoDB和MyISAM存储引擎之间的区别
-
B+树有什么特点
-
B+树索引中叶子节点之间按照key的大小以双向链表链接,适用于什么场景?=》范围查找
-
乐观锁和悲观锁
手撕代码:如何判断一个单向链表有环?
TCP的三次握手和四次挥手?三次握手中的SYN和ACK都会携带一个序号,这个序号是干什么用的?
三面
自我介绍
项目一:***********
项目的需求是什么?
-
项目中的某一个点,是怎么设计的?
-
哪里是共享资源?
-
心跳包机制?
使用什么实现的?
-
线程池?
-
读写锁?
遇到了哪些比较难的问题?
-
I/O多路复用模型中的问题
项目二:***********
-
在哪里使用多线程了?
-
MySQL数据库中存储的是结构化数据(标准的行记录)还是非结构化数据(图像之类的)?
-
MySQL数据库中存储的病理记录和文件I/O存储的心电数据之间是如何进行交互的,是否涉及到资源的共享?
-
STL中的vector、list、queue是如何使用的?说一下各自的优劣,如何选择?
-
vector什么时候会扩容?为什么是以*2这种指数形式来扩容呢?
-
遇到的问题:内存泄漏和内存越界问题
MySQL索引?
动态库和静态库是怎么实现的?
TCP粘包和分包?
自己未来想做哪些方向?
你有什么要问的?
Hr电话沟通
1.本科学校
2.offer情况
3.在你目前手里的offer中,更倾向于哪些公司?
4.你的期望薪资?
5.介绍部门情况
6.给薪资
7.你来滴滴的意愿有多大?你考虑的因素是?