百度二面
问项目,Valgrind、Perf、GDB用法(怎么显示全部线程的栈)
设计一个通过代码找memory leak的方法(每次malloc时哈希表记录<申请行, List<地址空间> >的内容,free的时候清除List内容,文件名和行信息通过宏获取)
算法题:1. 洗牌算法(shuffle函数)实现,数学方法证明全随机(`swap(num[n-1], num[rand()%n]), n--`)
2. 根号n的计算(二分法,刚说出算法名就换题了)
3. 二叉树LCA(太典了)
八股:
4. C++多态是怎么实现的?每个class都有一个虚函数指针吗?虚函数能不能加inline?
5. 哪些地方用到了红黑树?(epoll, map, 还有吗?)
6. 网络编程中,accept()发生在三次握手哪个阶段?
7. URL输入到浏览器的全过程(典)
8. 设计一个高并发场景的服务,考虑哪些因素?
9. 千万级用户访问一个服务,怎么保证网关不会垮掉的?(DNS解析为多个IP,还要有LVS,VIP)