2016阿里北京春季实习校招面经

2016-05-19  本文已影响307人  TyiMan

本人北京211研究生,应聘阿里北京Java研发实习,过了笔试,听说面试很考基础,紧张的复习了半个月Java基础,看HashMap等集合的底层实现,看concurrent包的类,从面相对象概念开始一点点的复习Java基础知识,看Java内存模型,看Spring MVC、Spring、Hibernate、Mybatis特点、看Mysql索引和优化,看计算机网络、看算法排序,查找,动态规划,分治……想在尽量有限的时间里多复习复习。

前一天晚上半夜满脑子想着怎么回答考官问题,重复演练自我介绍,然后不知不觉到天亮才睡着,睡了三个小时爬起来继续看算法和数据库优化等介绍,想着把原来实习时候做的数据库优化好好讲一讲,显示自己有解决问题的能力。然而一切并没有想象的那样简单。。。。

预约面试14:15,百度地图说1小时20分钟可以到达,计算一下应该提前一小时到场,避免发生意外,所以12点从宿舍出发。经历一个小时到达面试场地,原来那儿是雅虎的办公场地。进场前签到,刷了一下自己的条码(笔试通过系统里给发到,阿里应该是不希望有人去霸面),就到候厂区坐着了,人不是特别多,大屏幕上放着面试人以及对应的面试桌号,时不时会有叫号xxx到第几桌面试,同时手机也会发短信告诉你去哪儿面试。我到的时候刚到13点,所以估计自己还得等1个小时,坐着继续演练自我介绍,希望自己能通过自我介绍就抓住面试官的眼球。正想着,突然就叫到了我的号码,好吧,看来我来的早就提前安排面试了。心想不管了,就这么上战场了……

一面

面试官是一个胖胖的中年人,我递过去简历,打了声招呼,他说:“我先看看你简历啊”。

我说我是不是应该先做个自我介绍,他说不用,我先看看你最近做的项目( 我靠,这不按套路来啊,不让我自我介绍,那我怎么用我那勤奋刻苦,年纪轻轻,主持数个外包项目,靠写代码供自己读书生活,荣誉证书拿一摞最后保送读研的大学生活来征服你)。

我只好等着他把我的项目看完,然后问最近做的学校招生网是个什么样的系统,我介绍了一下系统功能,他让我画架构图,可能是我没描述清楚,他最后用电脑访问了那网站,让我给他再讲讲这个网站是做啥的(那是个php写的内容管理系统,我是来面Java的,你为啥要追着这个问,我简历上写这个项目,原本是想证明我能做出可以供别人使用的成型系统,想问Java技术应该问我实习的项目啊,我实习做的是Java诶)。

最后他又让我说一下其中的一个二级页面是怎么实现的,我balala的给他讲了一下,第一项目算基本问完了。他说你这个项目没有注册是吧,我说是,这个项目前端就是为了展现内容,不让用户注册,但是后面有一套它的管理系统(我想让他问问后台管理系统的事儿,一个前端有多少好问的)。然而它并没有问啥,就感觉有些失望的问了下一个问题。

  1. 你常用哪些Web框架? “Java的还是不限制语言?”
    Java的。 “SpringMVC、Spring”
    那你说说Spring的特点! “IOC和AOP啊,为啥要用IOC(以下为我的回答的概括),IOC的实现,为啥要用AOP,AOP的架构实现(代理和反射)”

  2. 说说Spring AOP是怎么实现的? “(没看Spring源码,有点儿懵逼)使用动态代理和反射balala(尽量把自己知道的往外说,最后他补充了一个在实例化一个类的时候,在二进制文件中加入AOP切面代码的方法,第一次听说诶 =^=)”

  3. 聊聊面向对象吧! “我就把对象的概念,抽象,继承和封装以及单一职责原则,开闭原则等等说了一遍以及介绍自己的理解”。
    你做的都是Web项目是吧? 我指给他看,“我这儿有个Java SE的项目,用Java实现的类似QQ的东西”(我特别希望他能问点儿Java的知识,不要再问Spring的东西了)。

  4. 好,那问你个计算机网络的事儿吧,你写的这QQ,两个人在公司内网使用,怎么进行聊天。 当时一想,我靠,内网ip不能拿来通信啊,结果就卡在这儿了,我说内网ip不能在公网上通信,这我解决暂时解决不了,我说您有什么办法?他给我在纸上画,两个客户端都访问公网服务器,建立socket连接,然后由服务器将一个客户端的消息转发到另一个客户端,我突然就想起来,我的那个项目就是这么实现的。。。并没有去把两个客户端去简历socket连接,自己把自己绕进去了。。。

  5. 你自己写个线程池,说说思路 用一个容器,比如数组来存储线程,提供线程的put方法,将线程放到线程池中,并且提供线程溢出策略和线程池扩展策略。提供get方法,从线程池获得线程,如果没有线程了,需要等待,等待超时返回错误信息。

  6. 如果你自己写一个类似与Tomcat的服务器,你会怎么做? “首先有两部分,一部分是处理HTTP请求,另一部分来管理类的实例化和调用,等等”

好吧,感觉你反应挺快,东西也都知道,但是不够了解,让你过吧,估计二面那帮中层技术你也过不了 “其实我今天来,目标就是能进入二面,这是我第一次面试(我的第一次啊),希望您能给我个机会让我去学习学习。”

二面都是考的特别基础的,算法什么的,你算法怎么样?要不我问你一个,求树的高度 “这个我会,前两天还在leetCode刷过这个题,用递归,遍历左右孩子,返回左右子树最大深度+1”

判断是否是平衡二叉树呢? “就是比较有没有根节点到叶子节点的距离比其他的大于一”

行吧,让你过吧,去试试吧 (面试官觉得反正你也过不了二面,是让你过呢? 还是让你过呢? 还是让你过呢?让你过了去试试吧 )“真的是非常谢谢您,我能问您个问题吗?“

可以,你说吧 “阿里想招什么样的人?”

阿里想招的人,首先是是要能解决问题的,你的项目都是web的,这要是本科生还行,但是研究生还做这样的项目,就不行了。(然后给我看他电脑里的面试评审要求,其中一点是:有能独立解决相应重要问题的能力,最好有发表相关论文或者专利,看来研究生要求还是挺高,我这一年研究生没啥提高,还是本科的水平啊)“那一般其他人都是什么样的项目?” 面试官翻了翻简历,漏出一份简历的一部分,是一位北邮研究生的简历,最新的项目是做一个物联网平台,我问:“这是导师的项目吗?“ 面试官说是的。(我们学校专硕基本上是散养政策,也没什么导师的项目可以做,就是尽早自己实习或者自己找项目做,看来我得回去自己弄一个niubility点的项目了)

最后我向面试官表示了感谢,就回到大厅等二面,一面完事儿感觉放松多了,反正二面没什么希望了,二面就是体验学习一下,尽力发挥吧(一面共用时50分钟左右)

二面

之前为了准备很多Java基础,HashMap的底层实现以及Java内存模型,想着面试官你就让我说说HashMap的底层实现,让我画画Java内存架构吧。二面进去,面试官是一个一看就是技术宅的人,那长长的头发,那呆板的表情,那小身板。递过简历,他快速的浏览了一下,让我做自我介绍,我把准备了无数遍的自我介绍(包括的我现在情况,本科期间的发展过程,获得荣誉,技术成长和遇到问题,研究生期间情况,对未来的展望),然而面试官貌似并不感兴趣。

  1. 我们说说Java基础知识吧,讲讲hashcode和equals (这个我看过,但是现场整理语言还是有点仓促) 讲Object中的hashcode和equals,讲了HashMap的hashcode和equals的应用,以及hashcode和equals关系(hashcode一样,equals不一定为true,equals为true,hashcode一致)

  2. 说说Spring的两大特点 "IOC和AOP,为什么要用IOC呢"
    我不听作用和背景,说怎么实现的? (没看Spring源码, N脸懵逼) 这个我说不上来。

  3. 说说Spring有哪些IOC注解 “我只知道autoware”

  4. 线程如何返回结果 (我看过)“实现callable接口” 要实现什么方法 (那个接口的函数式啥了??不是run但是很简单的名字,想不起来了,应该是call)“我给忘记了” 返回结果是什么 “我记得是一个Object对象” (不知道是和啥记混了,应该是返回一个Future对象的)

  5. 说说你配置过的Java参数 “我配置过Java运行时堆的 但是我忘记参数名是啥了 有Xm什么的” (平时配置那一大长串,并没有记住他)

  6. 你有什么问题吗? (我就是想知道阿里招的都是什么样的大神)“我想问阿里最想找什么样的人?”

面试官简洁的回答 “基础好的

基础好的 基础好 基础 ……

二面基本10分钟之内结束,基础太差,面试官不想浪费时间了,根本没有达到阿里的基础要求,不说了,我去复习基础了,待我秋招再战……

经典配图
上一篇 下一篇

猜你喜欢

热点阅读