前言我拿到了阿里的实习offer,经历了5轮面试,包括4轮技术面试和1轮HR面试。在这里分享你的面试经历和学习心得。希望能帮助到更多的朋友。我毕业于中南大学信息管理专业。真正开始学习Java是在大三下学期。我在北航读研究生,学的是移动云计算。一开始我只是个新手,一步步成长起来。有一点需要说明的是,以后你要靠这个吃饭,所以求职请保持120%的热情,越早准备越好。一方面,阿里在上午9:00接到了支付宝的面试电话,非常激动,期待尽快接到阿里的电话。电话接通后,心里还是很紧张,毕竟第一次这样面试。中间部分的题记不住了。第一部分提出的问题如下:自我介绍,不超过3分钟(其实我的自我介绍不到一分钟)你觉得自己比本科阶段进步了多少?,取得了哪些进展?研究生期间最大的进步是什么?你认为自己适合哪个发展方向?synchronized和lock的区别,使用场景。看过synchronized的源码,没有JVM自动内存管理,MinorGC和FullGC的触发机制。你学过JVM调优吗?基本思想是什么?如何设计存储海量数据的存储系统?操作系统的分页系统中存放的商品信息在JVM的哪个内存区域?问面试官一个问题:评价我在这次面试中的表现。我应该向我的技术堆栈添加什么?下次面试还有机会吗?在50多分钟的总结和面试中,我从面试官那里了解到,他是一个老员工,比我大不了多少,而且聊的总的来说还是比较投机的。我问了面试官***的三个问题。在回答是否还有机会参加下一次面试时,我说:竞争很激烈,但机会还是有的。可以看出,一方面的问题不难,但是要得到面试官比较高的评价,还是需要一定的表达能力和对技术有比较基础的了解。如果你在回答问题的时候能做一些适当的延伸,自然会让面试官对你有不同的评价。我在回答问题时遵循一定的步骤:首先回答问题的本质,然后回答具体的细节,最后在平时的编程中做一些扩展。这样面试官就会觉得你在这门技术上确实下了功夫。阿里在两边等了将近6天(我以为他被刷掉了)终于在第二周的周四接到了阿里的面试电话。太令人兴奋了。我很快找了一个安静的地方,准备好了就开始正式面试。旁边的面试官是部门主管,自然有些紧张。这次面试官上来直接问,还不如对面的面试官。以下是面试时的问题:自我介绍,不超过3分钟(我的自我介绍还是不超过1分钟)你说你熟悉并发编程,然后说说Java锁的种类和它们的区别(肯定深度不一样)如何保证内存可见性Http请求的过程和原理TCP连接的特点如何保证TCP连接安全可靠为什么TCP连接需要三次握手,是不是不能握手两次?为什么AOP的原理是动态代理和cglib实现的区别(这个,很醉)那你说说代理的实现原理。你看过Spring源码吗?下面说一下Ioc容器的加载过程。字节码编译过程你了解了吗(这个我真的不懂)问面试官问题:你能来杭州实习吗?评估我的面试表现。下次面试还有机会吗?你觉得我的技术栈应该增加什么,哪些方面需要改进?2.总结知道的就是知道,不知道的就是不知道。这些问题有些是基础性的,有些是基于你的专业技能。面试结束后,面试官对我的评价是:中规中矩,下次面试还有机会。虽然中规中矩,但是当面试官说下次面试还有机会的时候,我觉得这次面试应该通过了。这次虽然通过了面试,但我在想的是为什么面试官对我的表现还算中规中矩。后来才知道,我的回答虽然说到点子上了,但是扩展性不够,对一些问题的理解还缺乏足够的实践经验。面试官告诉我如果有时间可以研究一下字节码编译过程和JVM调优的知识(强调这一点很重要)。针对自己的不足,在面子之后,我投入到阅读和写代码的疯狂生活中。虽然在面试的时候有一些答不上来很正常,但是如果你能够超出面试官的预期,对于面试官来说也是一个非常重要的加分点。阿里花了五天时间找了一个安静的地方开始电话面试。据说面试的时候导演会多问一点项目的,所以在这几天的等待中给项目加了几个肉点。导演刚上来的时候很粗鲁。最尴尬的是导演总觉得有回音,因为不好意思提,所以就忍了。以下是三个方面遇到的问题:自我介绍,不超过3分钟(这次好像长了点,2分钟多一点)说说你熟悉的是哪个项目,为什么这个项目采用什么架构,数据库数据库怎么设计,有哪些表,为什么要有这些表,有哪些核心模块,模块之间怎么通信,session放在哪里,session状态怎么保存,有什么方法和区别,如何管理分布式会话,你有什么解决方案?听说过数据结构和算法吗(当然),讲二分查找的过程,讲快速排序的过程,写伪代码了解哪些设计模式,举例说明你说的是哪些设计模式在jdk源代码中使用。你有什么?问我(还是上面三个问题)三面总结我以为三面是交叉的,没想到是阿里总监的采访。由于前两轮面试都问了具体的技术问题,三轮面试之后就没有具体的技术问题了。总之,你做的项目一定要深入,包括用到的技术原理,为什么要用这些技术。对于项目,面试官重点关注以下几点:项目中某个重要的点是如何实现的(需要深入技术的原则)遇到最大的困难是什么(是什么),你是如何解决的他们?如果需要扩展某个功能,如何降低系统的耦合度?如果你想优化某个功能,你会如何设计和优化它?简历上写的项目,自己想好以上四个问题,才能在面试中游刃有余。.因为你的简历有什么骗人的行为,只要你详细问你,面试官就会揭穿。听到面试官说下次有机会面试,我自然很高兴。AliSimian(主任面试)果然下午4:00接到了部门主任的电话。第二天,简单沟通后开始面试。这次面试感觉最轻松。没有高级技术问题。感觉就像和朋友聊天一样。非常感谢这位面试官。以下是面试问的问题:自我介绍一下,3分钟内,介绍一下你最熟悉的项目用到什么架构,有什么亮点,平时学习什么课程,目前的研究方向是什么方向?你喜欢看哪本书,什么时候可以来实习?四面总结虽然这面比较容易,没有具体的技术问题,但是面试官还是很看重项目的。主要看你的潜力(也就是有没有修炼的价值)。这东西看起来挺虚的,不过平时的学习还是可以看出来的。所以,作为开发者,平时对技术的研究也是非常重要的。听到面试官让我等HR的通知,我很开心。我觉得这顿饭更美味了。大约4天后,阿里无面(HR面)终于接到了HR的电话。太令人兴奋了。感觉离阿里的offer不远了,打起精神好好聊了聊。以下是HR问我的问题:让我自我介绍一下。你做过什么项目?你在问题中说,你看到杭州有很多商户使用支付二维码。你觉得支付宝怎么样?每天有这么多人使用支付宝。这些数据如果给你存起来,你会怎么设计(不是说HR不会问技术问题吗?不愧是阿里的HR)为什么要来支付宝实习?你的同学如何评价你和老师?将如何解决?关于HR面试,早就听说HR面试的最终录取结果有一票否决权。经过之前的技术面试,我还是很担心。于是我请教了前辈,在网上搜索了阿里HR的面试信息,大概得出了这样的结论:诚信至上,简历中不要有虚假信息。试图通过虚假信息获得面试机会的后果得不偿失。HR更看重你的表达能力,与同事相处的能力以及对待工作的态度对自己有明确的职业规划(前提是你首先要对自己有一个明确的定位)关于待遇(由于实习岗位,这个就不说了,只是对我来说,能力是最重要的,能力提高了工资自然会增加)关于面试的心态:在拿到阿里的offer之前,我是一直在想一个问题:我应该怎么做才能更接近阿里?一年的成长和思考让我意识到了这一点。虽然中间遇到了很多坑,但确实让我对自己有了一个明确的定位,也有了一个比较明确的目标。正因为如此,我每天学到的东西激励着我不断进步并最终实现我的目标。所以迷茫是最可怕的。只有端正心态,保持120%的求职热情,努力工作,才能离目标更近一步。但是有了目标再努力,也未必能达到目标。归根结底,其中也有运气的成分在里面。只能说你找到自己想要的工作的概率更高。遇到好的面试官,肯定能赚到钱。我对阿里的这四位面试官感觉还不错,也没有因为资历而让我难堪,所以非常感谢这四位技术面试官。
