2019阿里巴巴的三次面试经历

鉴于网上找了一堆“阿里巴巴三面牙刷”,没有参考意义,只能自己去体验,写点经验后可以参考采访。5月5日参加笔试,5月20日收到电脸,第二天接电脸,5月30日经历传说中的决赛脸。让我们分阶段回顾一下阿里校招的全过程。

口试

5月5号先去蓝桥杯,然后赶回学校笔试,有点晚。还好阿里查了身份证!才发现忘在考场了。。整个笔试有些心不在焉,不过现在想想,有些题就算时间再多也想不出来,能做的题自然很快就写出来了。题目不算太难,但肯定涉及操作系统、数据库、算法、网络等知识,不会太深。和之前笔试其他公司不一样,感觉有点像数学题。只有最后一个大问题是让你写代码的,其他都只是为了写算法思路。挺灵活的,至少我没见过。感觉没有平时的积累,准备也没用。有一些不需要积累就可以做数学题,但是做ACM绝对不是问题~

体验:

1.如果你的操作系统水平能达到操作系统考试的水平,包括网络和数据库,那你对试题的处理就要宽松一些,因为不会很细,都是重点,都是很基础的知识。但是遗忘是一定的,所以要复习。大问题是填写操作系统几种调度模式的周转时间的表格,可能会忘记,但是很简单。

2,应该对搞ACM有帮助。算法不会是经典的快速排,但和数学题差不多。有大问题,也有小问题。我只有在没有从事ACM的时候才能用脑子思考。。。

电气侧

面试时间是5月20日晚上8点以后,很突兀。没有通知,直接就是面试电话。他们把面试时间尽量定在一个小时。我面试了68分钟,一问就惊呆了。这纯粹是技术性的。一开始有热身,想让你放松,但其实我好紧张。。进入正式面试时,我会问一些问题。感觉面试官应该有个题库,就是挑出来问。如果是,他可以深入到你做不到为止。。如果不能,可以直接换个话题。。

当时我先问malloc和new的区别。当时,我并没有感到兴奋。我以为是回答记忆的层次和打开记忆的方式。。不太懂底,感觉都是应用上的差异。。表示new可以有一个构造函数,传递一些参数来初始化等等。最后我问面试官malloc是函数,new是运算符。所以不要太神秘,明显的分歧只要是分歧就可以回答。。

后来问了一下代码在运行时在内存中的分配,就是堆、栈、代码区、静态区。告诉我他们储存了什么。后来他问是从低到高还是从高到低,然后他自己说,好像太深了,算了。。我说的是大事小事。。他问大小终端和什么有关,我说是CPU,然后他问intel处理器和AMD处理器,太低级了,听不懂。。即使跳过这个问题。。。

还有序列化和反序列化,如何保证数据的正确性。。我当时没有回答这个问题,因为我没有用java序列化和反序列化,用的是上层的XML和JSON格式,那么底层是怎么搞混的呢?。让面试官跟我聊了半天,他还说“我该采访你还是你该采访我?”。我紧张得说不出话来。。中间有人一直叫我,让我听不清楚。。非常尴尬。。总之,我越来越紧张了。。我还问了进程和线程的区别,我也很困惑在哪里说。。用词特别不专业。。

另一个问题是如何判断链表中是否存在循环。我说有两种方法可以做一个标记,固定一个位置,看它是否指向后面。太水了。。面试官提醒我,小学的时候有在操场上追逐的问题,试图启发我,但无果而终。。。其实只要设置两个步长为1和2的指针,然后看看能不能追上。

总的来说,这第一次面试我真的是越来越紧张了。虽然面试官一直在努力让气氛变得轻松,但收效甚微。。我越来越不自信了。。感觉太水了。。我想快点结束采访。。不同的话题之间也有一些闲聊的话题,但是我太紧张了谈不了很多,中间会有沉默,让我觉得很尴尬。。面试官真的很好。最后他说第二天会有面试,指出我的不足,让我改进。希望能展现自己的优点。他说我基础知识还可以,但是特别不系统。我只是没有为面试做准备。我希望我明天能做得很好。真的很感人。。这么差的表现居然给了自己第二次机会。。这么好的一个人竟然忘了问花名⊙𔱯⊙·b·汗。。

体验:

1,一面一定要准备好,可以在网上找一些面试题,或者多参加笔试,一些简答题和面试题差不多。而且面试官那边的题库还是挺庞大的,主要是想摸底。他会深入问你知不知道,不知道也没关系。我觉得这个时候没必要紧张。紧张是正常的。不要问我声音越来越小不想回答金额之类的问题。。

2.准备面试,调整心态。我以为这个电话是通知我电会的时间。结果直接开始了,心态没调整好,遇到不会的事就紧张。。后来问了同时接到电话的大牛,有几个回答不正确,所以不用太担心~一边是基础知识,再加上一点聊天辅助,没有问任何和简历相关的问题。

电表面的两面

第二天晚上七八点钟,我接到了二棉的电话。我当时正好在宿舍,比听舍友说话还轻松一点。另外和同学交流的时候也没什么感觉。总的来说,我很开心。这次是基础知识加上开放题和简历上的项目。

还好我没问太多基础知识,问了连载,就把面试官说的大概描述了一下,呵呵。。然后我问static静态变量是否可以用于非静态的函数,我说可以。因为这次准备好了就不是很紧张了,所以我就多说一点。顺便说一下,静态函数不能使用非静态的变量。我说这话的时候,他问为什么。当我说静态时,我只是得到了某个东西的副本。他让我从某个java机制说出来,我不知道是什么意思。。我刚才说了静态在静态区,每个类都有一个副本。非静态成员变量只能有new,在栈上,不能访问blabla。...

然后详细说了简历上的项目,最后问“为什么银行有排号机,超市结账的时候没有?”我真的想了一会儿。。一开始我以为银行有VIP什么的,但是面试官马上说超市也可以有VIP团队和非VIP团队,有道理。。然后想到如果超市有取号机,感觉取号机前面会有排队,因为结账时间更快,和叫号相比差别不是很大,而银行办理业务更慢,所以差别大,超市没必要。他说我没有看到问题的本质。。唉。。他好像在提示我,问我懂不懂操作系统。我说我问的是进程线程的区别。他说,我举个异步的例子。。我发现我每天都在讲ajax异步刷新,但是对异步不是很了解。。我也被解释了异步。。又被鄙视了。。但是现在我觉得银行是异步的,超市是同步的,但是我还是不知道为什么。。问了很多人,也没有特别好的专业解释。我也问过三面的面试官,他说这是个开放式的问题,因为他想看看我解决问题的方式。1 2