page contents

面经||【阿里巴巴】Java岗-五面阿里,终拿P7 offer

第一轮技术面试 有了这个共识后,我和面试官开始了第一轮电话面试。第一轮面试的时间是某天上午九点,电话面试,面试官简单的了解了一下我之前做的业务,接下来就问了我一些 Java 的基础知识...

attachments-2022-01-N33ndBx861ef548f1fa11.png

第一轮技术面试

有了这个共识后,我和面试官开始了第一轮电话面试。第一轮面试的时间是某天上午九点,电话面试,面试官简单的了解了一下我之前做的业务,接下来就问了我一些 Java 的基础知识,我面试后做了一下总结和记录,贴出来给大家看下:

  • Java 的 Object 类有哪些常用的方法?
  • 哪些场景下,子类需要重写 equals 方法和 hashCode 方法?

  • 描述下 HashMap get 方法的主要执行逻辑和流程;

  • Java 异常,什么是 checked Exception 和 unchecked Exception,举几个具体的例子;是否研究过 Spring Boot 中的异常;

  • ConcurrentHashMap 的特性和实现原理;

  • 什么是分库分表,以及分库分表的具体方法和使用场景;

  • 数据库事务的 ACID;
    对于数据库基础知识,读者可以找任意一本相关入门级的数据库图书学习即可。
    高级开发除了以上要求还要熟悉 高可用 MySQL 、 主从同步 、 读写分离 、 分表分库 等技术,这些技术的细节一定要清楚,它们是你成为技术专家或者高级架构的必备知识。我们在实际面试时,在讨论高可用服务服务方案时,很多面试者也会和我们讨论到这些技术,但是不少面试者只知道这些技术的大致思想,细节往往说不清楚,细节不会就意味着你的高可用方案无法落地,企业需要可以落地的方案。
    这些技术我首推 《高性能 MySQL》这本书,这本书高级开发者一定要通读的 ,另外还有 2 本非常好的图书也推荐一下:一本是《 MySQL 排错指南 》,读完这本书以后,你会对整个“数据库世界”充满了清晰的认识;另外一本是《 数据库索引设计与优化 》,这本书读起来非常舒服,尤其是对于喜欢算法和数据结构的同学来说。

  • 什么是分布式锁以及其实现原理和使用场景;

  • 幂等性问题。

这里需要说一下,上面的面试题其实都很基础,尤其是涉及到 Java 本身的如果你是从事 Java 开发的,但是只局限于应付公司的业务代码,从来没有主动去研读一下 jdk 的一些常用类库,无论从应付面试来说,还是就你的 Java 技术栈的提高乃至技术职业生涯都是不好的,希望从事 Java 开发的读者要意识到这一点。

网络上有很多类似于 Java 面试高频知识点总结的帖子和课程,我个人觉得这些课程你可以用它作为大纲,但是千万不能只达到这些大纲要求的深度,作为 Java 开发者,jdk 的源码,尤其是常用的 Java 类的源码还是建议认真阅读一下。

第一轮技术面试结束后,我就问面试官是否通过了。面试官告诉我通过了,然后我问他下一轮的的面试会安排在什么时候。我当时告诉他希望他们尽快安排,已经有其他的公司在催我入职了(期间我已经拿到了字节的 offer)。面试官说去沟通一下。

于是当天下午大概一两点左右,一面面试官问我晚上是否有时间,给我安排第二轮技术面试,于是约了当天晚上七点。

第二轮技术面试

第二轮技术面试是主管面试。原来约了晚上七点,我到了之后一面的面试官接待了我,并告知我他们主管临时有点急事,能不能把时间改到九点,或者再约。我当时想既然都来了那就等等吧,就不单独再约时间了。于是在这之前和一面的面试官又聊了一下,一面的面试官人很 nice,我们聊了很多东西。他和我说了一下后面面试的一些注意事项,告诉我二面面试官的一些情况,建议我在和他谈之前的项目时说清楚业务特点和技术重难点,并给出合理的解决方案,否则很可能被 pass 掉。最后又和我讲了一下阿里的薪酬结构和期权的一些事情,以及 HR 面试和其他公司的 HR 面试不太一样,要我认证严肃对待阿里的 HR 面试。

大约到了晚上九点,二面面试官终于来了。先和我介绍了一下他们所做的东西,最后给我出了一个场景题,让我根据他提出的场景设计一套系统,要交代清楚一共有几个子系统,如何保证高性能和高可用。在和面试官讨论中我给出了自己的设计方案,当然开始的答案并不完美,后来面试官不断给我提出新的问题,以考察我的设计能力。正常的面试结束后,面试官就我之前的项目聊了一下自己的看法。

聊了大概一个多小时后,结束了面试,我离开时,发现外面的沙发上还有一个人等待面试,汗,竞争压力真大。

第二天早上,我通过一面面试官帮我打听二面面试结果,大概中午的时候,二面面试官加我微信说面试通过了,但是三面面试官,也就是他们大部门的 leader 在深圳出差,问我是否方便视频面试,我说可以,于是就约定了第二天晚上七点的视频面试。

第三轮技术面试

前一天三面的面试官给我打了个电话,然后加了我微信。第二天晚上七点,面试官准时微信视频我,打开后发现是一个胡子没刮的中年大叔,”大叔”在阳台上坐在笔记本电脑前面,然后面试就正式开始了。先让我做个自我介绍,然后就和我聊起之前的项目,在我介绍项目的过程中,时而问一些 Java 细节的东西,如多线程同步用了哪些对象,如何编码的,时而问一下框架或者架构方面的,例如如何做热备、是否使用了分布式服务,分布式服务中多个服务之间数据如何保持一致,系统的支持的最大 QPS,缓存问题、数据库的压力问题等等。

三面的技术面试并不容易,一般来说,不同公司因为业务形态,采用的技术方案不尽相同,但是不少面试官并不认同面试者公司所采用的技术方案,所以需要面试者详细的、认真的给出合理的解释,如果你对你负责的系统背后的技术方案从没进行认真的思考和反思,很容易被面试官几次连续追问弄的措手不及,或者落入面试官设置的技术圈套中。

这类面试我给读者的建议是,无论你是公司某个项目的负责人,还是你只是参与某个项目只负责其中一部分,不仅要想办法了解整个系统的结构设计,多反思你现在的结构设计,还要对关键的细节核心也要非常熟悉,把你所在的项目的一些关键细节搞清楚,千万不要只局限于自己的”一亩三分地”。

第四轮 HR 面试

第二天早上,一面的面试官告诉我第三轮技术面试已经通过了,接下来就是 HR 面试了,但是阿里的 HR 面试与一般的人事面试不太一样,HR 在阿里有点像军团的”政委”,同时告诉我,阿里的薪资待遇现金部分不会给太多,更多的是期权,而且这些期权公司内部是明码标价的,在离职时公司会以制定的价格去回购。

当天,一个自称阿里的 HR 主管的女性给我打电话,与我约了下一轮的人事面试,具体日期记不得了,是后面几天的某个上午 10 点。

那天的 10 点,对方如约打来电话。在我以往的经历中,我觉得既然前面技术面试过了,到了 HR 面试时应该是简单的了解一下面试者的情况,然后就开始谈薪资了。然而事实并不是这样,这个 HR 先让我做了一下自我介绍,然后让我描述一下每段工作经历分别做了什么、每段工作经历时长和离职原因,还问了我诸如我工作中最受挫的事情以及最大的挑战的事情是什么,以及我的一些思想观念和价值观念。唉,感觉真的就像”政审”。聊了快一个多小时,我的心一直是绷着的,额头都出汗了。那天我的媳妇也在旁边旁听,我面试了一个多小时,她跟着紧张了一个多小时。

面试最后,同样的惯例,这个 HR 问我有什么想问的,我当时脑子一发热,问了一句套话:您觉得在 IT 公司,HR 应该扮演什么样的角色?唉,就是这个问题差点,让我”万劫不复”了。这个 HR 显然很老道,并没有直接回答我的问题,而是反问我怎么看待 HR 工作职责的,我当时说,人力资源部门应该为职能部门做好后勤工作。面试官听我这么说,立刻表示反对,开始给我说阿里的 HR 如何如何,作用如何如何,接着我就脑袋嗡嗡的又听了她说了一会儿。最终我们结束了这次的面试。

面试过程中,其实我一直以为会和我谈薪资待遇,然后从开始到结束并没有谈到,因为不确定我是否过了这个面试, 也没有去问。

第五轮 HR 面试

第二天早上,我再次接到这个 HR 的电话,告知我所有的面试都通过了,接下来和我谈下薪资待遇。经过他们的综合考察和评定,给我的职级是 P7(技术专家),给我价值 80 W的期权,分三年拿完,第一年给 25%,第二年再给 25%,第三年给 50%,但是现金部分最多只能给到 32k(月薪),保底薪资是 14 薪。于是我问她,我少要点期权,月薪能否加一点,她说做不到;然后我又问她每股期权如果离职公司的回收价格是明确的吗?她也说不明确。于是,我又和她说,我说你这个薪资水平和我上上家的待遇差不多。她也不接我我的话茬,说这是公司的规定,况且你来阿里也不是为了钱。我竟然无言以对。后来,我就说我拿了某独角兽公司的 offer,人家年薪都给到了七十多万,你这比人家低的太多了,她又说,这家公司给的薪水本来就比市场平均水平要高很多。

谈到这里,我其实已经没多少耐心继续谈下去了。我朝思暮想,诚惶诚恐想进的阿里,给出的待遇竟然如此。唉。大家出来工作,不是为了钱,为了啥?而且整个面试的过程也是比较磨人的,最终给出的薪资水平毫无诚意。此时,我实在不想继续谈下去了,于是我对她说,要不这样吧,我考虑一天,明天这个时候给你打电话告诉你结果,她说可以,并说第二天会打给我。

最终结果
综合考虑下来,最终我还是决定放弃阿里的 offer。第二天当那个 HR 打来电话时,我直接开门见山的说,我选择放弃这个 offer,她听了之后说了一句尊重我的选择,然后简单的寒暄了几句就挂了电话。

总结
我这个人,非科班出身,我深知有一份大厂工作经验的重要性。所以自毕业以来,一直想着有一天能去 BAT 其中之一工作,然而造化弄人,总因为这样那样的原因,一直未能得偿所愿。在 2019 年整整一年,创业付出大量时间和心血之后,决心还是告别小公司,再去大厂历练一下。于是经过认真的准备,先后面试了腾讯、饿了么、阿里蚂蚁金服、字节跳动等大厂,其中尤为亲睐阿里的工作机会,当然由于早些年面试大厂受挫,心里存在一点的恐惧心理,但这次之后再也不存在任何恐惧之心了,说白了,也不过如此而已。

当然,我这里并不是说阿里不好,阿里是一家伟大的公司,给我们的生活带来了很多的益处。但是有些事情,如同两个人的结合一样,勉强不来的。一家企业在发展的过程中总会存在很多问题,如果你能忍受这些问题,你可以选择她,如果你容忍不了,你可以不选择她。感谢帮助我那么多的阿里一面面试官。

我把这段经历写出来分享给大家,并不是想说明我有多强,是希望给想面试阿里的同学一点启发和帮助。入职大厂不仅需要技术实力,还需要一点点运气和策略。

以上就是本次分享内容,更多大厂Shopee工程师面试经验持续关注六星社区

想要高效学习,指路微信公众号——【python编程学习圈】每日分享学习干货,关注即可免费领取整套Python零基础到入门资料及学习教程,走过路过,千万不要错过!!快行动起来!!

attachments-2022-05-ZwUUz0Co628f2e3079c7b.jpeg

0 条评论

请先 登录 后评论
小柒
小柒

1478 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1478 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章