小米软件开发秋招面经
一面1h10min
[项目]- [ ] epoll原理
- [ ] LT与ET
- [ ] epoll,select和poll的区别
- [ ] socket部署逻辑与函数
- [ ] 讲一下TCP
- [ ] 讲一下TCP的四次挥手
- [ ] C++,python和go更熟悉哪个
- [ ] C++11的新特性
- [ ] unique_ptr对象可以拷贝么
- [ ] lambda表达式
- [ ] 仿函数
- [ ] 进程与线程的区别
- [ ] 内存映射,虚拟内存的概念
- [ ] 一般需要几级页表
- [ ] 进程调度算法
- [ ] 进程的生命周期 每个时候的具体状态
- [ ] 进程调度算法与死锁的产生,如何在代码中避免
- [ ] 银行家算法的实现原理,具体代码
[算法]- [ ] 给你二叉搜索树的根节点,树中恰好两个节点的值被错误地交换,找出这两个值并打印出来,优化输入。
- [ ] 如何平衡时间,学生工作和科研
- [ ] 参加过的比赛
二面1h
- [ ] C++怎么自定义sort排序规则
- [ ] shared_ptr的大小
- [ ] make_shared好在哪里,怎么解决安全问题
- [ ] 如果不能用new和make_shared,有没有什么方法可以不用它们来创智能指针
- [ ] 类构造函数私有化还能用make_shared么,new呢
- [ ] 用过哪些数据结构
- [ ] 红黑树可以实现哪些STL
- [ ] set的key可变么
- [ ] 数组和vector的区别
- [ ] vector扩容原理,是原地还是新建内存,是拷贝还是移动,可以默认移动么
- [ ] 完美转发的原理
[项目]- [ ] IO多路复用
- [ ] epoll比select,poll的优点
- [ ] 边缘触发的原理,怎么保证数据读完
- [ ] epoll怎么判断数据读取完毕
- [ ] 工作线程和CPU黏性大,导致占满了怎么办,怎么线程隔离(CPU轻核,线程绑定CPU,考虑调度优先级)
[算法]- [ ] 两个单链表相加
二面是4v1..