滴滴(花小猪打车-后端)
滴滴笔试完等了很久很久才被捞,但是凉的特别快......
一面 9.10
40min
(一看面试官面相,我就有预感要凉。。。)
- 现在有别的offer吗?岗位是什么?有没有相关经验?
(为什么一上来就问这个。。。) - 自我介绍,跟计算机相关的课程?自己哪些技术比较好?
- 介绍一下参加的电赛,自己负责哪部分?
- c/c++擅长哪个?
- 什么是多态?在代码层次怎么实现?用什么形式表现多态?
- c++模板属于静态多态还是动态多态?
- 对线程和进程的理解?区别和联系?
(提示我不要切出界面。。。不然影响面试结果。什么鬼。。。我动都没动。。。) - 进程和线程的切换?保存哪些信息?
- map/unordered_map区别?应用场景有什么不同?
- 并发:对互斥资源的保护手段
打断我,不要说概念。完了又让我解释一下。。。还有吗? - 临界区,互斥锁,同步锁,自旋锁
- 自旋锁是什么?占CPU资源吗?不占的是什么?
- 还有吗?并发的手段?线程同步的机制?
- 客户端开发和后端开发怎么想的?
- MFC的消息机制?映射关系怎么建立起来的?
- 非阻塞IO/IO复用解释
- 什么样的线程可以挂起?挂起的是什么?
非阻塞IO:将IO的任务先挂起,然后内核去准备资源,这个期间,线程可以进行别的计算等操作。
IO复用:复用的是线程的系统资源,不想有线程切换开销,则可以复用。
(看了一下时间,说还好没拖堂,再讨论几个问题。。。但到这里,我已经不想面了。。。) - TCP是哪一层?保证数据传输的可靠性?介绍滑动窗口?
- 还是要写一下代码。。。
问我对哪个数据结构熟悉?
我说数组。。。
可以高级一点吗?
链表
再高级一点?二叉树可以吗?
可
最后,考了一道字符串的题。。。 - 手撕代码:字符串转换为整型,注意边界条件
每回答一个问题,面试官都要深挖,甚至打断你,或者说不要讲概念,说实际的情况
(我一个非科班根本没有那么多实践经验啊。。。)
回答完的时候,还要补一句:还有吗?
我想说,没了没了,我会的都说了。。。
面完之后,陷入了深深的自我怀疑......
二面 9.10
1h7min
面完一面后不久,就发来了二面通知,害,放过我不好吗。。。
二面面试官的打断技能更上一层楼
- 自我介绍
- 打断,MFC了解的深吗?介绍MFC消息机制?
- MFC会有阻塞吗?怎么处理让响应更及时?
- 项目中智能小车做了什么?
- 打断,循迹模块怎么实现的?内部怎么做的?确定车头两个就能保障循迹吗?
- 车头的方向和车速是什么匹配关系?电机直流?有速度控制的码盘吗?怎么做速度控制?
我都快忘得差不多了。。。绝了。。。 - 对muduo了解深吗?有仔细看模块实现吗?
- 打断,muduo里没用到线程池吗?每个线程放到哪里?你确定这个就是线程池吗?
- 非阻塞IO和IO复用
再一次被问,看来这一方面在他们这里真的重要 - 打断,讲一下同步异步阻塞非阻塞的概念
害,自己这方面确实不清楚 - 确定muduo是非阻塞吗?IO阻塞和非阻塞是怎么判断的?
- muduo的主程序执行在哪里?等待在哪里?
- 打断,poll和epoll的区别?epoll内部怎么做的?怎么做到性能更高的?
- 红黑树和平衡二叉树怎么选择?用在什么场合?
- TCP和UDP的区别?
- TCP可靠性机制?滑动窗口怎么做的?
- 这是传输层的缓冲机制,应用层有没有做?
- 服务器的消息解析怎么做的?编码解码基于什么协议?只带字节头就能完成吗?如果没有发送完会怎么样?
- Pyhton了解吗?
- 要不,做个题吧。。。
{1,2,3,4} 和是10
不用减法,得到{9,8,7,6}
emmm。。。脑子已经不行了
然而还要问。。。 - 手撕:之字形输出二叉树
- 反问
面试官竟然还有耐心给我介绍他们部门的业务。。。
要打牢数据结构,语言的基础 - 还了解过其他开源的东西吗?
面试官说的库我都没听过。。。打扰了。。。 - Java了解吗?
- muduo中用的多的绑定和function跟C的函数有什么区别?为什么不直接用C的函数指针?智能指针的好处?
- 如果让你设计一个智能指针能写出来吗?
- STL用的多吗?有哪些数据结构?
- vector的push_back会使迭代器失效吗?后面怎么改进拷贝的问题?
- 栈堆的底层结构是什么?
- unordered_map怎么做的?
- TCP的半连接和半关闭
害 不想说什么了,只能说自己这种渣渣,配不上也无缘。