2019秋招|阿里面经(6面)已收到意向书

Java007 · · 663 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。
楼主8月3号投递阿里Java开发岗,9月4号收到意向通知,中间经历6次面试。过的时间久了不会描述很具体,简单说说吧。 背景 使用Java到现在大概有一年多的时间,之前一直做硬件,所以Java算不上很好。投递的时候,实习刚辞职,也没准备笔试面试,很多东西都忘记了。了解到内推挂了不影响秋招才敢投的,就是想着刷刷经验而已,从没敢奢望什么。在投递前的半个月,刚刚用10天左右通读了《Java并发编程实战》,认真做了笔记,算是有点心得,面试的时候帮了很大忙。 6次面试分别是: 4次技术面+1次HR面+一次了解情况的唠嗑(勉强算一次面试吧) 一面 8月5号 自我介绍 聊聊项目,我主要说了实习时候的项目,顺带聊起了数据库、缓存相关的问题。 ACID 事务隔离级别 MVCC 数据库分表 索引 缓存一致性 在自我介绍的时候,我有说自己多线程方面掌握的还可以。面试官后面问有没有读过什么源码,很自然的就回答读过Spring、JDK、以及java concurrent包下面的相关类等。于是顺带就问了些常见的并发问题: volatile 有什么作用 sychronized和lock有什么区别 线程安全性问题有哪些? 造成死锁的原因 加锁会带来哪些性能问题。如何解决? HashMap是线程安全的吗?Hashtable呢?ConcurrentHashMap有了解吗? 关于JVM java内存模型 垃圾收集器 双亲委派模型。 你有什么问题要问吗? 二面 自我介绍 有没有参加过ACM,有没有参加过其他竞赛,有没有拿过什么奖?研究生期间,做过什么项目,发过论文吗?有什么成果? 我的回答是,没参加过ACM,本科参加过数学建模竞赛,名次并不好,没拿过什么奖。(面试官开始有点失望的样子了)但是,我说研一做了一个军工项目已经投入使用,项目数据是保密的,但是内容不保密,可以讲讲,面试官比较有兴趣了。 你觉得你有什么优点、缺点?你觉得你身边比你优秀的人,他们有什么特质是你没有的? 做java有几年了?实习期间做过什么项目,你能挑一个给我讲一讲吗? 做过很多项目,但是这次想说个复杂点的,也是第一次讲这个项目,描述有点乱,方向带偏了,导致后来面试官没听明白我说的是什么,我也没听明白他问的是什么,导致气氛十分尴尬。 可能是为了缓解尴尬气氛,面试官问了个简单的问题,冒泡排序和快速排序有什么区别。 你有什么问题要问吗? 应该还有其他问题吧,答得还可以,但是具体问的啥我忘记了。 总结:之前一直以为,我投的是软件开发岗,面试官对硬件项目不感兴趣,就一句话带过,很少提。但是经过二面,意识到,其实面试官更多关注的是应试者的学习能力、态度、经历、思考等,就算没有太多软件开发相关的项目经验、成果,把你的体现在其他方面综合实力展现给面试官就好。所以后面给面试官自我介绍的时候,不单聊实习项目,还会说说研一做的硬件项目,并强调已经投入生产环境使用。 感觉这次面崩了,觉得没戏了,就没再准备。后来四五天的样子,内推人说,你竟然面到交叉面了,好厉害。基本上没收到拒信或者进度表上不是显示“已回绝”就表示还有戏 三面 8月12号,应该就是交叉面 从三面开始,感觉就差不多清楚套路了,自我介绍怎么说,怎么引导面试官去问我想让他问的问题等等,都有自己的想法了。面试官提出一个问题,是想考察什么,我也基本清楚,有时候不确定面试官的意思的时候,我会反问一句,您是想考察XXX方面的知识吗?我有一些理解,可以给您讲讲。 按套路来,还是自我介绍。 由于我强调了自己做的硬件项目,不出意外的,面试官问的比较详细,由于都是自己做的,理解的很清楚。但是这里有个重要一点是,你是清楚这个项目,你也研究过这个领域,你怎么把你做的项目,讲的通俗易懂,其实不容易。我通常会用面试官可能熟悉的知识去对比着讲硬件项目的东西,所以就很容易讲明白。不过阿里的程序员,说完全不懂硬件,不可能。 依托于项目问了TCP和UDP的区别。 在实习的时候,做过什么项目没有,哪些是技术性比较强的?可以讲一讲吗? 讲了一下项目、说了说消息订阅发布,提了K8S、docker等。 Redis有了解吗?有什么特点?分布式有了解吗?(了解都不多,但是可以聊聊想法) 有读过什么源码吗? 考察一些java基础知识 HashMap、ConcurrentHashMap、volatile 、sychronized Java内存模型、垃圾收集器、类加载机制、双亲委派模型 Spring相关 IoC、AOP 数据库相关:ACID、事务隔离级别、MVCC等 最后一题:一个3升的桶和一个5升的桶,怎么得到4升的水。 上面的问题基本都答出来了,多数聊的比较细致,面试官挺满意的,直接就给我说:好,可以,后面等通知吧! 四面 三面面完当天,晚上9点接到四面电话。感觉像是总监面。 这次面试和前面感觉明显不一样,问题不拘小节,注重思路,重点聊了实验室的硬件项目,还有在网易实习的时候的一个简单的任务,然后聊了实习那个项目的一些问题。 后面又问了一些简单的问题: HashMap、ConcurrentHashMap、volatile 、sychronized 出现死锁怎么排查? 如果查看堆内存信息? 出现OOM怎么排查问题? 还问了其他一些问题,我就记不太清了,不是很难,但是自认为回答的都比较具体,讲的比较清楚。 HR面 8月17号 HR面就比较常规了,但是阿里的HR面也要让我给她讲项目,也是很神奇。 你觉得你有什么优点?有什么缺点?分别举例讲一讲。你怎么克服缺点? 你觉得最有成就感的一件事是什么,你遇到了什么问题,怎么解决的? 你前面跟其他面试官讲过一些你做的项目吧?可以给我讲讲吗?你要考虑到我不是一个做技术的人,怎么让我也听得懂。项目中有什么问题,你怎么解决的?你最大的收获是什么? 你在实习工作中,有什么收获?有什么贡献? 你目前有面试过其他公司吗?如果让你选,这些公司和阿里,你选哪个?(送分题,回答不好可能送命) 你期望的工作地点是哪里? 你有什么问题吗? 面试完,HR说8月25号之前,实习转正会答辩结束,把所有面试情况盘点,后面一到两周会给出结果,发出意向书,如果下次我再给你打电话,会讨论薪资。 六面 8月24号,中午在午休,突然接到阿里的电话,一听声音比较像二面的面试官,二面面崩了,于是心里也是很紧张。跟面试官说我等我5分钟,整理一下衣服,找个安静的地方面试。期间调整了一下情绪。 5分钟后面试官打来电话 你面了几面了?我回答您这算第6面了。面试官说严格说我这不算是面试,就是想了解一下情况,时间比较紧,咱们简单聊。 1分钟的自我介绍。 做项目的时候,你有什么收获,遇到问题你是怎么解决的? 有参加过什么竞赛吗?有发过论文吗?有什么成果吗? 参加过什么学生活动吗?担任过什么职务? 读过什么源码吗?关注过什么开源项目吗? 分布式有了解吗? 并发编程怎么样?线程池有了解吗? 在实习期间有什么收获吗? 实习期间你对公司有什么贡献吗? 你有什么问题吗? 这里,我问了面试官,要胜任阿里的工作,我有哪些方面是比较欠缺的,是要努力补足的? 面试官,想了想,说基础知识、态度都挺不错,做事情很积极,也有自己的思考,比如你提到解决问题要总结更深层次的问题原因,这很好!以后可以在Java和分布式方面进行更深入的学习……你可以加我钉钉,说后面方便联系。 后面咨询了一下内推我的朋友,如果我能进去,6面面试官应该就是我的直接主管了,6面面试官说你没问题,那就没问题了,可以放心了。 总结 可以看到,其实面试官问我的问题都是比较常规的,没有特别难。而且有些问题面试官几乎每次都问。常见的问题,不管是哪个公司的哪个面试官,暂时没想好问你啥的时候,脱口出来的就是最常问的问题,一定要深入的去准备,别回答的太皮毛。在网上刷刷面试题,就想应付这些常见问题是不行的。你要去看源码,去抠细节,回答的比别人详细具体,这样才能突出你的认真和努力。 比如说:TCP和UDP的差别,个人认为如果只答出来: TCP面向连接,是可靠的,UDP不可靠。这样的回答完全不够。 回答应该全面、详细,我的回答中还包括: 对比了TCP、UDP的内部数据结构。 TCP基于数据流传输,UDP基于包传输。 TCP建立连接需要三次握手,讲了一下三次握手具体过程,有什么作用。 提到了TCP拥塞控制,以及相关问题。 ...... 面试官看我回答很详细,还没回答完,就很满意的切换问题了。 前面有提到,如果你投的互联网,做软件开发,你的项目经验少,可以用硬件项目来补。向面试官强调解决问题的思路,你的收获,以及延伸出来的一些思考,这样可以向面试官展现的的综合能力。也许你现在你项目经验少,基础不够好,但是你要有优秀的特质充分展现给面试官。 语言表达和沟通能力很重要,很重要,很重要!如果这方面不是很强, 面试一定要多演练、准备。引导面试官去问你熟悉的内容。 最后 1.技术基础必须扎实:算法、数据结构、操作系统等,阿里面试对技术的基础非常重视,基础扎实的同学有利于在前两轮突出重围。 2.技术宽度:主要集中在高并发、多线程、分布式架构,大以及常用中间件(缓存等)的选型和比较。 3.技术原理深入:重点还是提前准备好JVM、多线程高并发这块。 4.参与的项目总结:你需要清楚你所做项目的关键细节、优化、特点、原理。 5.很多所用第三方库&中间件等的原理,即使你不知道,也要有自己的想法能够说出如何代替实现,比如单点登录的替代方案。 6.最好,提前准备一个大数据访问,比如pv扩大1000倍,你的架构或者技术方案应对措施。 7.最后,千万不要倒在HR面试环节,避重就轻是重点,特别是优点和缺点,如果问到你的规划是什么,请记得一定告诉HR你想成为一名优秀的技术专家! 以上就是我的6总结,这些都是不断面试积累来的经验,分享出来避免更多同学少走弯路,早日进入BAT等一线互联网公司! 更多阿里高级java必考题与答案加群:795632998,进群即可获取。 ![image.png](https://static.studygolang.com/181107/27fe3b02aef616016c9fc2f93ad3925f.png) ![image.png](https://static.studygolang.com/181107/39720c6da604caa9aade649059a110b2.png) 加群:795632998,进群即可获取。

入群交流(和以上内容无关):Go中文网 QQ 交流群:798786647 或加微信入微信群:274768166 备注:入群;关注公众号:Go语言中文网

663 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传