《一面》
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. 来一段英文的自我介绍。
阿里云(C++研发)面试宝典阿里云(C++研发)
最新推荐文章于 2020-07-23 23:53:12 发布