阿里云(C++研发)面试宝典阿里云(C++研发)

《一面》 
                                                     
                                                     
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.	来一段英文的自我介绍。