#面经# #秋招# 1. 红黑树和AVL区别?优缺点?为什么红黑色要使用颜色标记?
2. 跳表和红黑树的区别?你的跳表怎么实现的?B+树索引和跳表做索引的优缺点?
3. 跳表的多线程并发优化如何实现?
4. std::move如何实现?
5. 用过C++的新特性吗?
6. unique_ptr和shared_ptr的区别?如何实现?如何转换?
7. 调用write会发生什么?内存复制了几次?什么时候返回?需要等待什么?direct io和buffer io方式的区别?flush磁盘的时机?
8. linux装载程序后内存分布?
9. io_uring相比epoll、aio的优缺点?使用的感受?
10. shutdown和close的区别?
11. TCP通信中,某一方被突然关闭,另一方如何知道?
12. 发送的信号都可以被捕获到吗?
13. OSI模型和TCP/IP模型?有哪些协议?
14. 用过那些内存泄漏检测工具?
15. 谈一下段页式内存?
16. 多核心修改怎么保证读?怎么使用内存屏障?该用写屏障还是读屏障?
17. 如何设计一个线程池?
18. new之后不释放会发生什么?程序结束之后一定会被清理嘛?