滴滴面试总的来说是很不愉快的,居然招了一堆20一小时的兼职去运作整个面试... 等了大概两个小时,也没有道歉。
一面过,二面挂。下面是一些总结
一面:
首先是问如何快速求一个数是3的倍数。
用除以3当然是个方法,但是有个数论中的方法能够快速解决,leetcode有这道题目,后面可以仔细看看。
然后问了TCP中的窗口问题,接着是数据库的index的实现,这里的确是什么都不知道..
二面:
一道问结果的题目
f1.h中有一个 double getVal();
f1.c中有它的实现 return 5.6f;
f2.c中
#include ... ... { int getVal(); int a = getVal(); } ...
问a是什么值?
他说的是两个文件分别编译,再链接在一起。
我觉得会出现链接错误,但是被否定了。
epoll和select区别,什么场景用哪个比较好?又被问到了,但是我没查。
fork的速度取决于什么?我说cow的话,进程内存如果多会速度更慢。
还是得多学习一下常见的系统调用的内核实现,clib层面的,fork,read,另外还有pthread的实现也需要看一下(腾讯问到了)