好未来(已拿offer)+ CVTE(3面通过)
发个面经来回馈牛客网,灰常感谢找工作以来牛客网各种资源的共享,offer在大神们看来都不好,但余已知足。排版了3次,终于好了。。。。
首先说明自身情况:非985、211本科生一枚计算机专业的渣渣。
提前批快结束了,终于有了一个offer了,实属不易,从实习到现在也面过了BAT,金山电话面过了在等宣讲会现场面。再不拿offer都开始要怀
疑人生了。。。。提前批阿里面了2面,感觉还可以,但是还是被拒了,好伤心,可能阿里是真的不招人吧
阿里一面
1、面试肯定少不了自我介绍,一通自我介绍,和之前差不多,没有什么新意
2、在栈上为什么不能用变量做数组的长度,堆上可以吗?
3、问了我的项目,QQ聊天系统,怎么实现的,客户端为什么要用TCP和UDP结合,用UDP协议有什么好处,消息是怎样定义的,怎样区分不同的消息,怎么知道使用锁的。我给他说了epoll、线程池,Reactor模式,以及自己实现的哈希表,线程之间怎样同步等说了将近20分钟
4、谈谈快排,于是3种快排4种优化方式说的还可以
5、STL里的vector,扩容是怎么扩容的,我说以2倍方式,又问我当容量很大时还是以2倍来扩容吗?不造了,尾插O(1),非尾插线性时间复杂度,迭代器失效,vector实现等等。说的挺详细的
6、进程和线程的区别,这个感觉面试官都爱问诶,Linux2.6内核之前没有自己的内核级线程2.6之后的3种线程模型,多CPU运行,进程的PCB控制块,僵尸进程遗留PCB控制块在内存中等等,说的挺详细的
7、TCP3次握手4次挥手,说了3次握手的原生缺陷以及怎样解决,4次挥手的TIME_WAIT状态,等等,说的也挺详细的
8、其他的技术问题记不清了。。。。。
9、问我最近在学习什么,感觉如何,对自己感觉如何,成绩等就在那里聊了,说我有没有对互联网技术了解,我说人工智能、数据挖掘机器学习等,又问我想往那方面发展,我说自己经常关注互联网,正在了解着人工智能,聊了一会
10、面试官说我对知识理解的还是比较深入的,内心暗喜。
阿里二面
很不爽,一面和二面的面试官感觉都是搞JAVA的。。。
1、快排,说了3种快排及4种优化方式,以及partition函数的应用,面试官说理解的还可以
2、接下来问了我的项目,我说了QQ聊天系统,balabala
3、问我学习,成绩,排名,有没有建立兴趣小组等等
4、问我经常去哪些网站了解技术,我说CSDN、伯乐网等等
5、又问我对黑客懂不懂,我和他聊了会,网站SQL注入,缓冲区溢出攻击,DNS劫持,DDOS攻击,ARP欺骗以及原理,嗅探、肉鸡、网页挂马等等,还好之前玩过一点黑客。
6、说一下网页从请求到接受的全过程,学过网络的应该都知道,balabala
7、问我怎么知道函数的具体调用一些列过程的。我说是调试,然后看汇编,内存等。来一步一步走程序的执行过程等 一面面了80分钟,二面面了45分钟,然而还是摆脱不了挂了的命运,可能自己真的太菜了,也可能阿里今年真的找人很少吧。唉唉,很受打击。。
好未来(已拿offer)
投了好未来的提前批,非常幸运的简历筛选过了,免笔试直接面试,8月27号下午面试,刚好打算面试完回家呆一周再来学校,休息几天。整个暑假一直奋斗在战线上,于是乎就决定回家休息一周再来学校。面试的地点是在大酒店,挺派气的,等了一会,一面开始
好未来一面
1、上来面试官调侃我说个子这么高还做这么高的凳子。。。。我在那里傻笑,首先还是自我介绍,因为说的比较流畅,面试官说是不是背的?
2、问了我的项目,我把Linux的线程池,并发反应模式,TCP等等都说了一遍。TCP是基于字节流的,给他画了内核和用户态相互拷贝数据图,TCP没有边界限制,阻塞IO,非阻塞IO,epoll机制以及高效的关键,红黑树实现,mmap内存映射,链表是实现的3个重要技术,等等,总之差不多把Linux和TCP的知识全说了,大概20分钟
3、面试官说来写到编程题吧,手写代码。题目是:给定一个字符串,比如abc,计算出abc全排列的种数,字符串的每个字母都是小写字母,一看,这就是字符串的全排列的问题嘛,我问了面试官字符有重复么?他说可以重复也可以不重复,于是我用分治法写了个全排列的代码,加上去重的判断。因为之前竞赛时用的熟的不能再熟了,虽然几个月没有写过,但是根据思想,10分钟就把代码搞定了。写了3个函数。面试官看了几分钟,问我怎么实现的,我把原理给解释了一下,面试官又问我这个效率高吗?可能是看代码有递归调用吧。我一愣想,自己之前用的就是这个呀,难不成还有更高效的?
4、面试官说你用数学的方式尝试去解决,我说想了一会,面试官说用阶乘,把计算过程给我大概说了一下,让我写代码,5分钟搞定了,其实他这种方法虽然比较适用于这个问题,但是会溢出,而且超过10个字符之后就不可以用这个方法了
5、面试官让我去找HR,一面过了
好未来二面
1、过了30多分钟二面开始,自我介绍。。。。。
2、问我函数调用压栈,我把函数的调用过程画了出来,因为之前看过汇编,从右向左传参,调用call指令压入返回地址,保护各个寄存器等。
说的挺详细的
3、this指针保存在哪个寄存器中,我说ecx寄存器
4、C++调用约定和stdcall调用约定的区别,以及弹栈的时候的区别
我说了C和C++是_cdecl调用约定,由调用者把参数弹出栈。对于传送参数的内存栈是由调用者来维护,而stdcall是由被调者自己平衡栈帧等等。说的挺详细的。他问我当前指令保存在哪个寄存器,这个还真没有留意过。。。我说eax,他说eax用来保存返回值的,我一想,eax就是来保存返回值的,我说有一个pc指针指向当前执行指令的下一条指令,他说是保存在哪个寄存器,诶,我说不造了。
5、C++类中线程callback函数怎么使用自己类的成员,我说首先得定义成static的,他说嗯,然后把this指针传入。他说可以。
6、TCP3次握手4次挥手,这个问的太多了,我详细的从头到尾说了一遍,他说第二次握手之后可以发数据吗?我说可以,但是必须得把ACK子段
置位等还问了一些别的相关问题。
7、用过什么框架没有,我说用过一点libevent框架,把框架的原理说了一下。
8、还是手写代码。。。 题目:用epoll的ET模式实现一个服务器框架 要求:
1、接受client连接建立,出错处理
2、处理client关闭连接以及出错
3、TCP边界问题,其实就是TCP粘包 写了3页的代码。。。。。。。。。
9、HR让最后回去等他们回北京了给通知。最后幸运的收到了电话通知过了。二面面试官好像是我的部门经理,给我安排了一个导师,看来宣传
的是真的
CVTE
招实习生的时候做了CVTE的笔试题,网页卡了,把网页刷新了一下,所以两道编程题就全没了,手贱了。。。于是乎,只提交了个选择题,笔试就挂了。校招笔试还好没有出状况,顺利的过了笔试。然后在桃园酒店面试。面试前一天因为在沙发上睡了一觉,竟然发烧了,唉,第二天去面试的时候好头晕,一直晕晕乎乎的,不过还好3面都过了,不过百度笔试错过了,哭晕在厕所。
CVTE一面:
1、说一下最值得说的比赛或者项目,然后就直接问项目了
2、把项目给说了一遍,用到的技术,UDP广播等等。
3、UDP实现广播时会不会出现对方接受不到,可能是什么原因
4、UDP在同一个网段下可以实现广播吗?在同一个子网下为什么可以实现广播?怎样划分子网
5、其他的忘记了
6、手写代码, 题目:给定一个数组,返回出现次数第二多的数 给5分钟时间。。我问他对时间复杂度和空间复杂度有没有限制,面试官说没有。。我写的是先快排,把快排写了,然后在max,second遍历一遍找到。O(nlogn),还说也可以使用哈希表,在O(n)时间复杂度内就可以。
7、就这样,一面感觉20多分钟,就这样过了,略水。。。
CVTE二面:
1、上来就直接手写 反转二叉树 代码。。。
2、又给了几道写结果题,以及分析结果,基类和父类的构造析构函数调用,多态,结构体里的位域,求大小并且分析,我说windows下和linux下对位域有区别,他问我什么区别就balabala,说让我在linux下求。。
3、问我项目,QQ聊天系统,balabala,又问我高并发怎么办,我说这个我的这个模型还可以应付并发模式不是很大的,他说TCP内核有没有连接限制,我说有,好像保存在一个配置文件里,但是具体忘记了。。
4、问我gcc和g++区别。。。。
5、会写makefile不,gdb调试,给我说了各种参数,ld,backtrace,等等7个,唉,只会两个,感觉好虚。。。
6、进程间通信方式,怎样实现在两个进程间互斥访问共享内存,我说给共享内存加锁,他说这是不可以的,锁不会对两个进程都有效,我又说了点别的,这个还真没有注意过。。。
菜的抠脚 解法:http://www.cnblogs.com/my_life/articles/4538299.html
7、问我的项目有没有用到什么设计模式,我说单例模式等,让我手写了单例模式,加锁,两重判空
8、有没有问他的,问了公司团队以及项目分工。说让我在后面等他一下,然后被他带到HR面的地方
CVTE HR面:
1、对前面两轮的表现打个分,对自己打个分
2、说说家庭,和家里谁的关系最好
3、未来5-10年会做什么,怎么规划
4、有没有别的offer
5、如果给offer可能什么原因没来
6、什么原因可能会离职
7、对工作的地点、时间、薪资怎么看
晚上回来11点查了一下,终面通过
祝大家也早日收到自己心仪的offer
#广州视源电子科技股份有限公司#