面试系列(十七):滴滴 研发工程师

一面

自我介绍
 
关于服务器开发和系统优化你有没有相关经历,专门学习过这方面知识?
 
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.你来滴滴的意愿有多大?你考虑的因素是?

发布了34 篇原创文章 · 获赞 22 · 访问量 7172

猜你喜欢

转载自blog.csdn.net/lizun7852/article/details/103135346