李逍遥

2017年阿里巴巴Java开发工程师面试总结

李逍遥 面试技巧 2018-01-23

2017年阿里巴巴Java开发工程师面试总结 2017年阿里巴巴Java开发工程师面试总结 面试技巧

前言

从7月3号开始第一轮面试持续到刚才发现已回绝,整整一个月有余,之前一直不敢开面经,因为这个博客在简历中写过,面试官是可以看到我的博客的,所有我也不敢透露太多,最后的一个回绝整整距离第四面隔了16天才在面试官网进程中看到,一阵恍惚之后清醒过来,真是有点佩服阿里的效率了,这段时间很漫长,收获也很多,现在终于可以不用提心吊胆好好静下来谢谢自己的文字了。

感觉整个过程下来,也是我现阶段的一个总结,阿里的面试是我人生中面临的第一个正式面试,虽然结果不尽如意,过程却收获颇丰,也感受到Java这门技术多带来的改变,本人专业自动化控制,学习java纯属乐趣,但是也在这上面苦学了一年多之久,也了解阿里,才越知道为什么说阿里时java的天堂。

流程

通过朋友内推拿到阿里的提前批面试,刚发送简历,当天晚上九点多就拿到内推邮件,点击,让我完善简历,然后就收到了在线测试跟编程测试,一个是性格,文字,图形测试,一个是编程测试,做完以后的第三天下午,就收到杭州打来的第一个电话,第二天晚上第二个,然后隔一周周一下午第三个,再隔一周周二下午,北京打来第四个,后来就最是最后楼主发现已回绝。

我会把每一面的情况大概总结下,具体的面试问题会留在最后,然后针对性的分析,一轮轮的写问答太麻烦了,我也不记得每一轮问的具体问题了,只是在第三面时开始有针对性的回忆之前的提问,然后有些问题也是重复的,所以我就不在一轮轮复述了,而是一起做一个总结。

面经

第一面

第一天下午三点左右,接到电话,刚好在教研室自习,一个杭州打来的电话,面试官简单说明来由,就问我是否方便面试,我说可以,然后让我先自我介绍,说实话,阿里是我正式接到的第一个面试,在此之前还没有面试过,所以根本没有准备,然后我就简单的介绍了下自己,把项目提了一下,果然面试官会针对他感兴趣的东西问,问了我中兴算法大赛的情况,然后我的项目也大概问下,但都只是简单的说明了一下整个思路,并未深入,然后几个java基础问题,最后30分钟左右,面试官就说,那今天就到这里了,结束了第一面。

相对于第一面,感觉更多的是宽泛的了解java知识面,我还是比较幸运的,所问的几个问题我都大概的都知道一些,虽然回答的并不是很好,所以每一次面试下来,自己都做了记录,再学习。

第二面

第二面来的很快,第二天晚上八点多接到的第二个电话,面试官人很好,没有再自我介绍,直接切入主题,针对我的项目开始具体问,我说做的一个模仿QQ聊天的软件,他问我你有没有考虑过性能的问题,如果出现卡顿,你会怎么解决,我当时说实话,做这个项目纯练手的,未考虑到上线测试,我说,我自己做着自己练习的,模仿着功能,自己纯手写的,未考虑到这些。我问面试官性能方面的问题,可以具体一点么?面试官问我,如果你在传送文件时卡主,还想发送聊天信息,你怎么解决,我说那就重新开启一条线程处理,将聊天与发送文件线程隔离开,互不影响,面试官说好,我知道了,就没再深入下去。

后面,针对这个问题,我私下找了解决方案,NIO非阻塞编程以及Reactor单线程模型,这个可以去网上搜集资料看看,这些都是解决多线程通信的问题,私下了解到,其实阿里也在用Netty技术,这门技术也是基于Reactor实现的通信技术,它是用来处理大并发,大容量的通信技术,所以阿里其实面的每一个问题,都是有针对性的,在这一点上,我没有答到点子上,不够完善,应该是没有给出面试官想要的答案,但是面试官没有在这上面为难我,放我进去了三面,还有针对中兴算法大赛的提问,因为是自身的项目,所以说的很啰嗦吧,面试官听完没有深入追问,可能只是想听我的表述能力吧,看看我的思路。还有项目就不重复叙述了,与各位项目实在是小巫见大巫了,大家好好准备自己的项目就可以了,肯定是会提问的。

第三面

第三面隔得就比较久了,一个星期才来电话,周一下午五点左右,上来面试官就跟我说,时间比较紧,我们就长话短说,你随时可以打断我,我说好的,然后就开始了,这次面试官问了一些基础,很少,然后开始针对实际问题提问,第一个比较简单,如果有一组重复数字,我要你找出来,你怎么解决,这个我当时就说HashSet集合,可以去重复,然后我又问,是要找出重复数字?面试官说是的,然后我就说用HashMap,将数字作为Key,出现次数作为value,然后再遍历,找出value大于1的Key,就是所要答案了,面试官说好的,然后又问我,有一个比赛,你去商场购物,给你一个购物车,你如何在商场中,在装满购物车的情况下实现价值最大,装不下的就不可以装,当时我就迷糊了,但是仔细一想,利用动态规划可以做,贪心算法限制条件下结果不准确,具体的,各位私下看看,网上有很多资料,然后面试官好像挺急的,最后面下来17分钟,结束了第三面。

第四面

第四面也是隔了一个星期,周二的下午,当时跟学弟在教研室,说真的,苦等真的是劳神,有好几晚我都没睡好,我不晓得电话什么时候打来,每天早九点待在教研室,晚十点多回宿舍,一刻不敢掉以轻心,面试完就开始总结,学习,准备,每天下午就最难熬了,电话一刻不离手,生怕错过。

废话说多了,第四个电话北京打来的,开始还不想接,怕骚扰电话,实在是太多了,但是我就是这样,接一下吧,没想到对方上来就问是某某某吧,我说是,然后他说是阿里巴巴的,可以面试么,我说可以,然后他就开始面试了,又一次自我介绍一下,然后问我我研究生的专业课程,学了什么,怎么没有做本专业,而是转java,然后我简单说了下,然后针对性的开始提问,听面试官说话,我就觉得这个面试官不简单,说话流利而简练,毫不含糊,应该是个大牛,他说你对分布式了解么,我说不了解。。完蛋!!

后面你就知道,分布式对于阿里完全就是灵魂的存在,阿里构架就是基于分布式构架搭建的框,可惜我知道的太晚,一个菜鸟,对于阿里内部知之甚少,准备的全是基础,对于新技术的了解真的太局限了,计算机的可能会接触分布式,搭建局域网,刚我还在看阿里的技术演化呢,可惜太年轻,本以为接近,却又深知自身的不足。

问我,你知道消息队列么,我又一脸懵,我说我只知道阻塞队列,在多线程里用到的,消息队列没有用过。完蛋!!

消息队列也是解决高并发消息传递的技术,类似缓存一样,将消息存入队列,然后供消费者异步调用,解决阻塞,以及秒杀,采用的也是消息队列技术。 所以说,很多新技术你不知道,这才是遗憾的地方,知道太晚。

问我,你说一下JAVA8新特性吧,我支支吾吾只知道lambda表达式,简单复述了一下,其他的知之甚少,用的不多,我又没能回答出来。完蛋!!

第五面

没有等来HR面,已回绝。

隔了16天收到的消息,确认了。

这一个多月总算过去了,有点小伤心,可是又庆幸自己历经四面,说实话,对于我已经算是成功了,一方面,感慨自己的幸运, 一方面,也深知自己的不足,同时,更是激发了我对于这们技术的热爱,迟到的面经,下午才写完,后续的具体基础问题,我会再做总结,先把我的面试过程以及一些大家不知道的,但确实最重要的技术跟大家分享,希望大家继续完成我未完成的梦。

有想法的人有很多,能坚持下去的才是最后的胜利者,自己经历的失败不在少数,但是我依旧认为我是一个幸运的人,这篇简单的博文,花了几个小时回忆总结,希望做各位成功的路上的一块垫脚石,有问题,下面可以留言,我每天都会上来回复的,谢谢大家。后面还会有基础问题,以及一些我的笔记资料分享,后续我整理完给大家,让我缓一下。

 2017年阿里巴巴Java开发工程师面试总结 面试技巧
继续浏览有关 阿里巴巴Java开发工程师Java面试 的文章
发表评论