我就不写那些细节描述相关的了,直接写被问过的问题。
阿里巴巴面试官问的,大概记得的问题(报的岗位:研发工程师):
前台接待的时候说自己熟悉C++,不熟悉java
1、网络,在纸上画出三次握手和四次握手的图,并解释每个数据报以及哪些地方可能出现异常。
2、linux命令,ps、top、kill等等
3、fork函数与linux僵死进程
4、多线程,怎么解决线程互斥的,碰到过什么问题
5、讲述C#定时器原理
6、C++面向对象你是怎么理解的,类有哪些特点,分别举例子说明
7、虚函数的好处,
8、设计模式,除了单例和工厂,说几个你会的
9、C++里经常会出现内存泄露,说出你知道的内存泄露场景有哪些
10、一致性hash
11、比较select和epoll
12、b树和b+树对比
13、struct与class对比
14、代理服务器原理
15、一二面都有要求说说自己做过的项目,阿里巴巴问项目的时间比较长
hr面问题自己怎么想就怎么回答就行。
腾讯面试官问的问题(报的岗位:后台开发方向):
1 设计一款聊天服务器
2 epoll.select.poll优缺点比较,以及相关的函数
3 线程池与进程池
4 ipc,说了几个的关键函数和处理流程
5 线程同步技术
6 一张纸上的代码,几个GetMemory函数找bug
7 一张纸,写个函数strncpy
7 一张纸,写个栈,支持O(1)时间的push.pop.min
8 如何使用coredump文件,gdb你常使用的命令有哪些 ,gcc说你知道的所有参数和含义
9 linux 查看系统性能使用过什么命令,知道哪些字段含义
二面主要是说项目。
总结:不管是阿里还是腾讯,每回答一个问题,自己说过的技术可能成为面试官要问你的下一个问题。项目要是自己真的全程参与,能自圆其说,即使不那么高大上的项目也能让面试官满意。hr面表现出最真实的自己就行。