百度一、二、三面面经
时间:14:00 - 16:00
一面
C++中的静态变量和普通变量
C++内存模型
怎么理解C++多态
STL map是什么实现的
哈希表是怎么实现的
各种排序算法的时间复杂度
一百万个数,每个数都是0-1000,使用哪种排序最快
基数排序
网络四层模型和七层模型
四层模型每一层有哪些协议
三次握手、四次挥手
TIMEWAIT
拥塞控制
多进程通信机制
多线程同步机制
阻塞IO和非阻塞IO
select和epoll的区别
epoll的LT和ET
Mysql MyISAM和InnoDB的区别
数据集隔离级别
主键索引和非主键索引的区别
MVCC
Innodb怎么解决幻读的
手写快排
二面
C++多态实现
写一个类A有一个虚函数、类B继承自类A(这里忘了把析构函数写成虚的,面试官提醒了一下,顺便将了一下原理)
多进程通信
多线程同步
STL的allocator
free一个类的指针的时候发生了什么
new和malloc的内存对齐是怎样的
int (*s[10])(int) 这是个什么 (这个没看明白)
特化,偏特化
写一个单例
写一个多线程的生产者消费者,想队列中加数据,取数据(这里写的也是磕磕绊绊的,在面试官的提醒下写完了)
写一个递归版求数组最小值(一听这个需求觉得很蒙,不过还是写出来了)
写一个LRU,在面试官提醒下加了析构函数管理内存,然后问道了为什么不用智能指针,然后又把智能指针讲了一遍
如果让你设计一个IM系统,架构一下
三面
C++多态实现
C++内存模型
多线程中的私有数据怎么保护(这里没明白,我觉得线程的私有数据不是独占的吗,应该不用保护吧)
各个排序的实现、时间复杂度、应用场景
一个函数调用发生了什么
同步、异步、阻塞IO、非阻塞IO
剩下就是聊天了
#百度春招##百度##实习##C++工程师##面经#