快手 C++ 二面面经
概述:一面后很快发了二面,10月14日面试,二面问了实习和八股,很基础,但是问到了具体的api细节,可能是考察有没有实践过。面完之后一直泡着,过了很久没挂也没发三面,可能是面的比较一般。
面试流程:
1.自我介绍
2.实习相关,做了哪些工作,最终效果对比,怎么部署
3.C++ 有哪些新特性(智能指针、右值引用和lambda表达式)
4.什么情况下用lambda表达式(只讲了用来封装回调函数,没讲清楚)
5.char s[10*1024*1024];有问题吗(栈上分配10M内存,栈溢出)
6.栈一般多大?可以修改吗?如何修改(8MB,ulimit设置)
7.map怎么判断key是否存在?用下标判断可以吗?
8.为什么map使用下标会初始化(猜测是防止误操作)
9.tcp可以两次握手吗?会造成什么问题
10.tcp发送数据是有序的吗(答得是有序,实际是发送是可以无序的,接收保证有序)
11.无序怎么保证最后的数据有序(答成应答机制和重传机制了)
12.重传是保证可靠性,有序应该用什么保证(滑动窗口)
13.滑动窗口除了保证有序,还有其他作用吗(大体上讲了下流量控制和拥塞控制)
14.详细讲下拥塞控制的过程
15.recv的返回值是什么(读取的数据大小)
16.-1和0的时候呢(-1是出错;0是超时,答错了,实际上是对方断开连接)
17.用过什么linux命令
18.查询io使用率的命令(top,不够详细,后来查了下可能是iostat和iotop)
19.怎么创建子进程(fork)
20.怎么区分子进程和父进程(返回值,父进程返回子进程的pid,子进程返回0)
21.进程间的通信方式,用过其中哪些
22.手撕:最长无重复字符子串
23.反问
#软件开发笔面经##快手求职进展汇总#