从投下阿里的简历到面试结束,陆陆续续经历的一个月时间。今天第五轮面试结束,感觉面得一塌糊涂,对自己的认识也更清楚了一些,所以在这里做一些总结,总结失败的教训,希望在以后有更好的表现。
总体来说,越往后的面试,面试官们越注重的是基础中的基础,并不是在学校期间写过几个项目,做过几个网站就能随随便便应付了事的。像spring原理,servlet,几乎每轮面试都有问到。。。后悔以前课上学的servlet都还给老师了,还记得课上老师给我印象最深的一句话:现在开发web都是用框架,学servlet干嘛?但如果只用框架,你们这大学4年学软件的和去培训了几个月比有什么优势?现在想想,框架确实对学习没什么好处。好了,不多说了,总结一下几轮的面试题:
由于没有去找内推,所以去参加了测评和编程测验。笔试分为几种题型,有智商题(IQ测试常见的哪些猜图的题),阅读题(读一段文字或者是图表,选择说法正确或错误的),常规计算机题(数据库,计算机组成原理,计算机网络,算法数据结构等等,应有尽有),心理测试题。编程测验题一道,30分钟。当时遇到了一道求吞吐量的题,当时各种网络术语和计算公式都记不清了,结果非常简单的编程题想了很久。
第一轮面试:现在想起来,面试官问的题目都比较简单。首先惯例自我介绍,然后就是自己做的项目,介绍了一下项目。聊到spring,问了spring的aop实现方式,java collection的一些对比,垃圾回收方法,java同步的实现等等,总体来说比较简单,都是一些java面试必考的。当时问了一下阿里的技术情况,面试官介绍了半个小时,辛苦了。
第二轮面试:同样难度不大,问了vector,arraylist,linkedlist的区别和联系,适配器、装饰、代理模式的区别,spring aop、bean管理的原理,jvm内存模型等。
第三轮面试:第三轮面试感觉难度陡然上升,面试官对我的回答问问追问到底,问了很多底层的东西。像get、post的区别,答了以后,面试官一直问还有吗。。。问得我一脸蒙蔽,实在说不出来了,然后告诉我还有数据类型的限制、编码类型、缓存、书签等。见w3cschool: http://www.w3school.com.cn/tags/html_ref_httpmethods.asp。然后是session和cookie的区别,同样答了后还继续追问,然后二脸蒙蔽。给你一个分布式系统,你怎样设计session和cookie保证同步。还有你设计抢红包的程序,有哪些方法分配。这个我想了3种,后来查了查微信的红包原理:https://www.zhihu.com/question/22625187。还有servlet的很多问题和linux的一些命令,问了问关注的新技术,聊了聊docker。本来以为这次危险了,但是没想到通过了。
第四轮hr面试:hr让我用一种特殊的方式自我介绍(从小学、初中、高中、本科到研究生做阶段介绍),感觉准备的东西都落空了。然后问了个人性格,别人的评价,优缺点等。当时有点紧张,面试官开玩笑说别人说你逗比,怎么电话中不像。结束时hr说可能还有一轮面试。
第五轮面试:原以为是又一轮hr面试,结果是两个技术大牛的技术面。一上来问项目中的定位,然后框架是怎么搭建的,pom的一些标签的含义,maven怎么增加仓库,web.xml的配置细节,jdk1.8新特性,spring的控制反转和bean的管理原理,servlet的listener filter,spring boot的启动原理。真的答得是一塌糊涂,项目中都只是注重使用了,这些基础都没注意。最后面试官语重心长的告诉我,掌握框架重要,更重要的是其中的原理。
总体来说,这是我第一次进行面试,收货了很多,学到了很多,更是看清楚了自己非常多的不足。希望在以后的学习中三省吾身,更加注重基础的学习,有一个从鱼到渔质的飞跃。
ps:......后来发现居然过了