阿里测试开发(一共七次面试),目前在蹲offer,贡献面经
1.简要介绍了一下自己的部门,然后有什么岗位,问我有什么问题想要问他们么?
2.做一下一分钟的自我介绍。
3.问了项目,就着项目不懂的几个地方问了一些问题。
4.有没有学过数据结构,数据库,计算机组成原理,网络通信什么的?说学过,就开始问。
5.stack怎么用C++实现?
6.给一个双向链表,从中删除一个节点,问指针是怎么操作的?
7.TCP和UDP的区别?
8.知道排序算法吗?说几种常见的排序算法,找一个算法给我讲一下思路。
介绍完几种算法之后,给他讲了快速排序的思路,接着又问了我时间复杂度和空间复杂度的问题。
9.给了一道数据库的题。
10.既然你刚才提到了堆排序,那么怎样实现一个从大到小的数组排序,讲一下思路。
1.做了自我介绍
2.聊了半个多小时的项目,问的很具体,其中有些通用的问题。项目的精度怎么样,你所承担的角色是什么,有没有项目manager,有什么创新点,项目的应用场景,过程中遇到了什么问题,是怎样解决的,项目一共几个人。
3.问是用什么语言写的,回答C++。说C++有三大特性,继承、多态、封装,举个例子来讲讲这些。真的是so easy…
1.C++的存储空间有哪些?(一共是五个地方:代码区放二进制程序、堆区、栈区、字符常量区、静态存储区)
2.STL里面常用的算法?
3.讲一下迭代器
4.STL的各种容器及用法?
5.map和hash map的区别,优缺点?
查找速度上hash map更快,但是空间复杂度上hash map占用空间大,而且构造速度慢。
6.如果让你学习一门新技术,你怎么开始学?
7.讲一篇最近看过的技术博客
8.平衡二叉树的原理
1.聊了项目,你有什么优化,可以在哪些地方改进,缺点,不足,精度怎么样?
2.物理地址和虚拟地址的关系
3.字节对齐了解多少
4.在32位操作系统中,一个struct中有一个char的变量,问占用多少字节。
5.两道算法题:
1)给一个连续排列的自然数数组,从中抠走两个数,乱序后,用时间复杂度、空间复杂度最小的方法找到这两个数。