《一面》 1. 聊项目,你怎么实现的,用了什么框架,你以为最难的地方在哪里。通常都是说到哪问哪,自由发挥的题目 2. 你以为C++和objective-c最大的区别在哪里?(因为我简历里写的技能有C++和iOS)。解释一下你所说的动态运行时语言这个特性。 3. 通常用的C++的数据结构有哪些?(stl的数据结构) 4. map由什么实现的?你知道红黑树和AVL树有什么区别吗? 5. 为何像map,set都用红黑树来实现?你有听过skip-list吗?(没听过,而后他建议我能够以后看看) 6. 用过vector.reserve()吗,vector的数组是怎么增加的? 7. map-reduce了解吗? 8. linux熟悉吗?目录权限,如644表明什么,目录若是有可执行权限表明什么? 9. 平时有使用vi吗?通常的linux命令熟悉吗?(如awk,grep等) 有用过gdb的调试吗? 10. TCP/UDP的区别,如何实现拥塞控制,如何实现可靠传输?UDP的应用? 11. 数据库的ACID分别表明什么?原子性的定义? 12. 使用python的程度,有使用到多线程和装饰器吗? 13. 实习时间 《二面》 14. 实习时间 15. 项目问题,你负责什么部分,怎么优化的? 16. Socket通讯时客户端和服务端所经历的状态。当客户端不close直接退掉的话会发生什么。 17. 为何要用虚析构函数,什么是多态 18. vector,list,deque的区别 19. 给你一个n,随机输出1~n的值,要求最后全都输出一遍。 20. 用两个栈的结构来实现队列 《三面》 21. 实习时间 22. 设计一个函数,若是须要修改形参,应该怎么作(引用或者指针) 23. const vector<int> 和vector <const int>的区别 24. 给2TB数据,2GB的内存,详细说明外部排序算法,算法复杂度。而后回答一共读了多少数据量,写了多少数据。(2路,多路都问了) 25. 堆排序,如何调整堆,伪代码。 这一面有一点尴尬的是,我在第4题的回答是对的。可是面试官对“读了多少数据量”这个问题上理解错了,而后说我错了,说我这不会之类的。感受他对我有点失望了,而后第五题我答对了以后他就没问题要问了。 《四面》 26. 项目问题,主要有什么功能?遇到的最大的问题是?如何解决的 27. 有作过其余项目吗,好比操做系统或者文件系统方面的项目?(我老实回答没有) 28. 那若是要你设计一个文件系统,你怎么设计? 29. 设计一个线程池 30. 设计一个内存池 31. 有用过gdb调试程序吗?通常都怎么用的。 32. 熟悉shell吗?如何统计一个文件中某个字符串出现的个数?(我在这方面学的比较少) 33. 问算法题,一个大文件中有不少字符串,如何统计出现次数最多的字符串? 34. 给一个1~n的无序数组,求最少次数让这个数组变为有序。 《五面》 1. 面试过程下来,你以为你表现的如何? 2. 你对分布式存储有了解吗?有兴趣吗? 3. 你更但愿从事哪方面的工做,应用型仍是研究型的工做?为何? 4. 你以为应用和研究之间的关系和区别? 5. 平时会逛技术论坛吗? 6. 平时会本身写一些小程序吗? 7. 来一段英文的自我介绍。