小红书c++开发记录(第一次面试)
一面
- 自我介绍。
- 介绍一下服务器项目的功用。
- vector list deque介绍及区别。
- 介绍std::forward以及std::move。
- 说一下rpc啥啥啥(不懂)。
- http头部有哪些字段。
- UDP发送一个包,对端回复什么。
- 没理解啥意思,我说udp尽最大努力交付,没有超时重传等机制,要看具体业务逻辑。
- 然后面试官说什么端口,build啥的,我还是不太懂,就说内核会挑选一个端口,没必要绑定端口(当然也可以)。我估计没get到点。
- 讲解一下tcp发送syn的过程。
- redis用的很熟吗(回不是很熟,哈哈)。
- 多态的实现。
- 写一个算法题,三数之和(比较简单)写了几行面试官说不写了直接说一下思路,说了下说可以了,我说还要考虑去重啥的,他说没有重复元素可以了。。
- 有没有了解过音视频的编码啥啥的。
- 然后就是聊一些其他的实习相关的东西,感觉面试官人很好,没有为难人,不过感觉没怎么问简历上的东西和网络编程的东西,哈哈哈。。
二面
- 自我介绍。
- 多态的实现。
- 介绍一下ET、LT,说一下区别(内核有个链表维护到来的事件,事件触发后ET就直接丢了,LT会再次插入)。
- 覆盖和隐藏(第一时间没反应过来覆盖就是override,后面说清楚了)。
- sizeof 空类(1)。
- MTU MSS相关。
- 调用send发生什么,讲述一下过程。
- read函数返回值代表意义。
- 服务器可同时承载的连接数,有哪些因素决定(五元组,最大文件描述符数量限制,内存等等,讲了一下如何实现的百万连接同时在线)。
- udp发送一个10000字节的包能发送吗(答不太了解,按理解来说超过mss不能。实际上可以,但是不建议,IP层分包之后丢失任一片都会丢弃整个包)
- 其他想不起来了暂时,算法题给了个easy题,将一个无符号整型转为主机字节序,当时脑子抽了问大端还是小端,忘了主机字节序了,离谱的是我循环遍历32位还出bug,让面试官帮我调,include还拼错了,后面面试官说你可以想个办法不用一位一位遍历,最后我直接取每8位调了下勉强算过,简直是离了个大谱。。。有一说一面试官真有耐心哈哈,太好了。