投了阿里巴巴暑期实习的岗位,过了几天就收到了电话面试,第一次是周六的下午,难道阿里巴巴的员工周六都还要加班,太恐怖了...当时在外面逛街,就从新约了另外的时间。周一的晚上就收到的电话,想一想这个时间应该正常。做为程序员平时仍是要以公司的事情为重的,闲下来了以后才能作一些面试的工做,因此他把时间安排在了周六或者晚上,接下来简单写写面试到的问题吧,范围挺大的,不少都答不上来,不知道还能不能有后续。linux
数据结构的知识:程序员
1.数组和链表的优缺点,随机访问,方便增删。面试
2.一个元素和在数组和链表中查找它的时间复杂度...我怎么以为这个问题没什么意义,我怎么感受都是O(n)呢。算法
3.改进为一个有序的数组,那就是二分了嘛,有序的链表?单链表是O(n),双链表呢,好像仍是O(n)...sql
4.怎么在O(1)的时间内查找到某个元素在数组中的位置,我答的须要hash表的辅助,接着问题扩展到hash表上,hash表存在的问题,我只知道一个冲突,冲突的解决方法有哪些?二维数组解决,另外找最近可用的存放...其实也记得清不少解决方案了。数据库
数据结构知识好像就只问了这么多,接下来问了数据库的知识,其实这方面的知识我只保留了会写sql语句了...vim
1.数据库的索引的数据结构,我大概知道是B+树或者B树,能不能描述下它的结构...这个就虚了。记得不是很清楚了,随便瞎说了一通。设计模式
2.数据库中某个字段建立索引,模糊查找的时候可以索引吗,彻底不懂呀...数组
数据库真心忘得差很少了,幸好你没继续问,第一范式,第二范式,第三范式的定义,我都不记得了。网络
而后问到了一个设计模式的问题,举例一个设计模式应用场景,
这个问题一时半会没想起来,随口说了一个看到的代码里用到的单例模式,而后就被继续问了单例模式下什么状况会失效。我仅仅只记得若是不加锁会在多线程的时候失效...显然这不是他想要的答案,后来他问我了解不了解分布式下对象共享有没有接触过,我没有接触过这方面的东西,因此给补了他想要的答案了...
网络方面,TCP的三次握手的具体过程,这个我没答上来,回来本身复习了一下。这个常常会被问到,建议熟记于心,TCP释放的四次握手过程也应该熟记于心。又问了一些socket的知识,虽然我了解了一点ACE的东西,可是我知道这方面我不熟,我就说我简单的用过socket。
C++方面,虚函数的具体使用场景,我只记得主要是配合多态使用,继承的时候析构函数声明为虚函数...,还有智能指针的问题,我只记得auto_ptr和boost的smart_ptr的策略不一样,一个是保留的,一个是计数的策略。而后就是内存泄露的问题,new和delete不匹配,异常致使泄露,怎么预防内存泄露,RAII,都是简单了解,就随便说了一下,应该答的也不是太好。
而后问了简历上的一些项目的事情,问到linux下查看文本行数的命令,这个真心不记得,我说vim能够查看行数的...而后被鄙视了,说那是可视化的。另外问了一些软性问题,同窗怎么评价你的,性格如何。
阿里的面试范围真是广,还觉得会被问到算法呢,没有,可能电话面试不太方面描述吧。简单记录一下,还没接到电面的能够参考一下。有所准备,欢迎指正错误。
后来是收到了阿里的拒绝信息。原来在本身很弱的时候还不能发觉本身很弱,这样很可悲,我我的还会以为我其实答的不是太坏,总应该给一个接下来面试的机会吧。我看到下面直接评论没戏的时候我会以为其实我答的也不是特别的糟吧。我总不会懂那么知识吧。毕竟我没有为了这个实习把全部的方面都看了。他们应该也是考虑了不少的方面吧。本身尚未那么的完美,只能把这个当作是一次催人奋进的小插曲。加油。多看书,多码码。