一面:
首先自我介绍项目,项目确实比较水,被面试官看穿了。我写的16年3月至今,他说这东西要做这么久吗,答曰处理数据那一块是难点。
2.C++与C的区别,讲了三点,STL,模板编程(图灵完备),面向对象。
3.网络,服务器和客户端连接的过程,我说了下bind,listen这些,然后问我time_wait状态与FIN状态。服务端怎么判断客户端有没有异常关闭——心跳包?。
4.操作系统,信号知道哪几种,线程之间的通信方式。
5.HTTP协议的post put get的区别。
6.windows还是linux用的多平时怎么调试代码,比如说内存溢出怎么调试。gdb,makefile
7.设计模式了不了解,然后我第一个举单例模式的例子。然后问单例模式里的静态对象在并发时会出现什么问题,没答上来。
8.最后问了下常见的排序算法,举快速排序,堆排序,归并排序进行分析。
二面:
1.开始还是问项目,因为项目用到了HTTP,接着问HTTP,200,500,404,这些返回的状态值分别是什么意思。
2.我说对STL比较了解,大概讲了下vector吧,然后扯到alloc,malloc,C++11的移动语义。
3.问了问数据库,ACID四个特性,然后讲讲原子性跟隔离性,然后索引懂不懂。
4.问了下之前笔试的第二题,就是给定两个数组p,q,求p/q的所有值的集合。问我这题还能做哪些优化,比如处理用户输入,首先怎么判断是否合法。
5.还有经典数据结构了不了解,A*树。
6.讲讲哈希,缺陷,怎么避免。 哈希链接法,都聚集在一条链上怎么处理,查找效率会很低。