学习了那么多牛友的面经,我也来贡献一下自己的面经hhh
面试未录音,纯回忆,可能不是特别全
一面主要问项目和计网 50min:
聊项目
mmap的细节
epoll底层原理,和select poll的区别
红黑树性质和相对其他的优缺点
epoll ET LT区别
LT下如何解决EPOLLOUT事件无限通知
mutex的底层实现
http各版本区别
TCP第三次握手目的
SYN洪泛攻击解决方案
TCP拥塞控制算法(慢启动、拥塞避免、快速恢复、快速重传)
TCP零窗口检测
算法题还是比较简单:从尾到头打印链表
二面主要聊C++和操作系统 60min(面试官真大佬,不问到我答不上就继续深问):
C++多态底层实现
vtbl存储在哪里
type_info存储在哪里以及是否可改写
copy ctor中为什么要pass by reference-to-const
指针常量和常量指针区别
esp在CALL时增大还是减小
函数CALL的底层实现
C++11 右值引用是什么
move语义和perfect forward
RAII是什么
shared_ptr实现原理,引用计数的存储方式
make_shared和new区别
malloc底层实现原理
虚拟内存、MMU、TLB细节
算法题二面居然没有让手撕,只是让讲了下思路:LC207 课程表
三面主要写代码多一点 40min:
const是否一定不可改变,分情况讨论
面试官问了很多名词(我好多都没听说过,慌的一匹)
dpdk、ebpf、iouring、reuseport啥的,还有一些记不太清楚了
然后手撕两道算法:
1.剑指25 合并两个排序的链表
2.类似剑指45 把数组排成最大的数
全部评论
(4) 回帖