Android终极面试总结+经验(文末有终极大招)

2017也渐渐走向尾声,作为一个已经混迹多年牛客的本科生,十分感谢牛客这样一个平台给我带来的帮助。从今年2月开始进行春招的准备,拿了腾讯、阿里、华为、YY等公司的实习生offer,到暑假入职腾讯成为一名实习生,再到秋招经历了几家公司,拿到了阿里、腾讯sp和华为sp offer,自己确实也是感慨万千。虽然前路漫漫,但及时总结自己的经历,让自己成长是我觉得在我们的学习路上很重要的一点。
(注:本片文章的所有内容以及更多内容都可以在文末公众号内下载)

一、给大家的建议
在大家的学习、招聘的过程中,我觉得第一点也是最重要的,就是心态要放好,不管你处在任何一个阶段,都要有一个良好的心态,特别是在面试这个最难、最紧张的阶段,不要怀疑自己,保持自信去迎接每一次面试,从面试中去学习就可以了。特别是刚开始面试,难免会有很多不会的东西,用查漏补缺的心态去面对。
每个人都会有失落和低潮的时候,迷茫、紧张都是我们面试过程中很正常的心态,希望大家用平常心去面对。给大家一些面经和资料整理都是能够帮助到大家学习的,但资料也有解决不了的问题,为此我也和一些同事做了一些行动,做了一个公众号,在最后放出来,欢迎大家关注~

二、面试的知识点
任何一个方向的校招,知识点都来自于两个方面:基础知识+专业方向知识,Android方向主要就是(1)计算机基础知识:数据结构、计算机网络和操作系统;(2)Android方向的知识:从基础到开源框架到更深入的一些简单的系统机制。这些方向我之前也总结过,放在了百度网盘上,就在文末的公众号中~我自己结合我的经验做了一个非常详细的总结,希望大家喜欢,直接关注文末公众号回复“安卓”即可下载~

三、春招实习面试面经(面经都是先后记的,不分先后)

(1)YY

欢聚时代是内推的,不过感觉内推不内推没有任何区别了,反正没有笔试还不错,那天一早就到了YY的大厦下面,感觉是个挺豪华的地方,内部装潢比较的好,给人感觉很好。但由于是第一次面试还是有点紧张的,门***了简历就在那等,没一会就进去一面了。

一面:是个挺好挺年轻的面试官,在一个感觉很小的房间里,不过光线很好,进去就让我坐下了。

(1)介绍一下java内存模型吧,正好有纸笔,我就画了图一个一个介绍,他也没有催促我,就让我慢慢说,我从内存模型又扯到GC上面,然后啰里啰嗦的说了不少JVM的内容,他说你这块感觉挺了解的,就过了;

(2)ArrayList和LinkedList的区别,这个也很简单,从实现上说一说,他说那java我就不问了,就开始问项目;

(3)问我项目中一个功能怎么实现的,主要从自定义View的角度问我,我就说了一下动画的具体算法,然后给他演示了一下App,他又问我维护上怎么做的,这个我确实不是特别了解,就说了说自己的看法;

(4)之后开始狂问开源框架知识,Retrofit,EventBus这些简历里面写的框架,他就问我怎么它们是实现的,源码看过没有之类的,之前准备了一些所以答得自己感觉还不错,毕竟准备了,网上的博客分析的也很多,这里讲了蛮长时间,还说到了内存泄漏的出现和怎么解决。

(5)最后问了设计模式,我就说了一个责任链模式,说到了触摸传递机制,和他说了说,他好像觉得还不错。然后让我问问题,我就随便问了一点,什么适配怎么做的,最后问他表现怎么样,他说觉得你不错,我当时就很开心,觉得一面应该过了。

二面:二面和一面之间隔了很短的时间,很快就二面了,当是还是很紧张,进去简单自我介绍一下就开始了

(1)让我介绍项目,这里我觉得一旦让你介绍你简历上的项目,你需要保证一点,诚实。我很实在地说第三个第四个项目都是自己随便做的,效果肯定不好,他虽然很严肃,但表示能够理解,说学生确实也能力有限。我介绍了App和实验室的项目;

(2)和一面面试官一样,开始问框架实现,我也巴拉巴拉说了一堆,这里确实是准备过的,所以他好像比较满意;

(3)问我做项目时遇到的困难,这个我没有准备,不过我就从简单的滑动冲突开始说,然后又说网络访问的解决,他一直就是听,也没有打断我,我也就厚着脸皮一直说啊说;

(4)最后他说问点基础,就问了Java同步机制,我就从锁的实现原理开始说,刚说到“膨胀机制”,他就说停,说了一句看来你很了解啊,那我就不问了,你去找hr吧。

就这样糊里糊涂的结束了二面,觉得有纸笔还是很重要的,并且自己对于熟悉的领域一定要提前想好画图怎么描述,这样你讲的清晰面试官也会比较的满意,然后看到了评分觉得还不错,就去等hr了。

hr面:吃完饭就在那等,等了一个多小时终于到我了,hr我感觉不是很愿意聊吧,有点冷漠,问了一些常见的问题,什么准备在哪里发展,实习工资要求等等,就让我回去等通知了。

等了一个多星期,终于在下一周的周五来了offer电话,自己还在考虑,因为是第一个offer,觉得需要分享出来也攒攒人品,继续加油吧!

(2)腾讯

腾讯的内推简历没有被挑起来,当是还挺沮丧的,不过还有正式流程。腾讯面试都是现场,总体给人感觉不错,因为都是去酒店面试,整体感觉很平易近人,面试官也没有什么架子,都很乐于交流。所以面试还是看面试官,这句话是真的。

1、一面

一面就是去希尔顿,没等一会就开始面试了,主要提问如下:

自我介绍;

问了jvm内存模型,我说了蛮多的,面试官可能觉得我java这块不错,就没继续问别的了;

说一说项目,感觉面试官不感兴趣;

说一说EventBus的实现(这个经常被问),然后就扯到自己怎么实现了一个类似这个的开源库,面试官没怎么提问;

写一个冒泡排序;

说一说On的排序,这个当时蒙了,没答出来,其实不就是hash嘛;

写一个二叉树中两个节点的最近公共父节点,这个题我做过,但当时脑子一片空白,只想到最弱智的方法,算法题让我一定手写,所以两个算法题手写了好久,过了很久的感觉。

有什么问题想问。

一面让我当时就感觉腾讯真的是注重基础,基本上不问任何应用的问题,就是算法、基础,但由于算法题写的太差,虽然写出来但方法比较弱智,所以觉得估计是挂了,但运气还不错,侥幸进入了第二轮。

2、二面

二面又去了喜来登面试,当是还是很紧张的。主要问题如下:

自我介绍;

介绍一下项目,你觉得最好的项目是哪一个?

做的过程中遇到什么困难没有?怎么解决的;

为什么学习安卓?对这个方向怎么看;

你简历说你看过部分框架源码,看过什么部分?

能说说安卓应用启动过程吗?

了解机器学习吗?了解哪些?(这个当时确实不会,如实说了,我觉得不懂的话还是不要逞强,面试官后来也说他这个也就是问一下,看我了解不了解而已)

你对设计模式了解吗?说说常见的设计模式,你项目中的MVP架构有什么优缺点呢?它是什么设计模式?

问问基础吧,你了解虚拟内存吗?然后让我画图表示虚拟内存是如何实现的,就是页表、转换过程等,这个考的还是很细;

最后做了一道智力题,不难。

二面结束之后很久状态都没变,当是周围同学都变了,第二天中午状态才变化,最后很开心去面了hr。

3、hr面

hr面没有问什么刁钻的,都是hr面的老套路,自己也记不太清了。


(3)阿里

阿里的面试是我最早开始的,全程电话面,感觉也不错,二面三面比较水,最后放弃的原因还是因为要去北京,太远了,而且问了很多过来人,阿里转正率确实比较低,个人还是比较看重这个,所以最后拒绝了,因为面的比较久远,很多内容记不得了,想起来再添上。

1、一面

一面突然打来的电话,当是自己在图书馆,是第一次面试,非常紧张,内容记得还是比较清晰的,如下:

自我介绍一下;

自己主要做了什么项目?介绍一下;

项目最出彩的地方是什么,用了什么方法解决的;

EventBus怎么实现的?

你用了Retrofit,看过它的源码吗?Okhttp呢?

常见的设计模式有哪些?介绍一个

有什么问题要问我?

一面问的比较深入,自己也比较紧张,但是很多问题都答得断断续续的,面试官让我不要急,慢慢说,最后说你通过了,后面会有人再通知你,也算是为我后面的面试开了一个好头。

2、二面

二面就一个字,水。全程问项目,项目做了哪些,干嘛的,怎么用的,12分钟就结束了。

3、三面

三面是交叉面,也没问什么问题,基础知识问的如下:

EventBus怎么实现的?你做的那个有什么问题,它有什么缺点和优点?

MVP架构有什么作用?介绍一下;

为什么TCP要三次握手?两次可以吗?

剩下的都是一些闲聊,问我看什么书,为什么学习安卓之类的。

全程大概30分钟,面试官那边信号不好,但可能是交叉面的缘故,问的不难。

4、hr面

都说阿里hr很刁钻,我这个hr面全程10分钟,问了几个很正常的问题,家在哪,未来什么打算之类的,有什么爱好,然后就结束了。


(4)华为

华为面试就一个感觉,水,而且是特别水。现场面,和CVTE一个酒店,全程没有问任何算法、基础等,全是聊了聊项目就结束,总共就两次面试,华为可能是面试最看脸的一个公司了吧。

1、一面

由于太水,我脑中都记不得他问了什么内容了,记得的就这几个,:

自我介绍;

做过什么项目,为什么要做这个?

做项目遇到什么困难,怎么解决的。

华为最奇怪的就是你的面试官不是你方向的,这个是非常非常奇怪的一点,所以全程就只问项目。

2、二面

二面一开始问了一些项目,后面就是成绩普查,这个多少分,那个多少分,简单记录一下:

自我介绍;

说说项目吧;

xxx是怎么实现的,说一说;

你成绩怎么样?排名多少?

拿过奖学金吗?有多少人拿?为什么10%只有三等奖学金?(这个当时真的是蒙了,我们学校就这样啊)

数据结构多少分,计网多少分,操作系统多少分,数学多少分。数学说满分他竟然笑了一下,说大学还可以有满分啊,很尴尬哈哈。

问完成绩就让我回去了,最后竟然还过了,感觉华为真的是看脸啊。

5CVTE

在海投策略下投了CVTE,因为有了YY的offer,心态上还算放松,抱着试试看的态度开始了笔试面试,周六一面二面,周日终面,刚刚收到终面通过的通知,记录一下经历。

1、笔试

笔试挺简单的,但题目确实不记得什么了,编程题两道也比较简单。这里吐槽一下,不能调试的编程题,很好奇题目通过率有多少,连包都要手打,觉得设计这个笔试系统的人应该不是程序员吧……

2、面试

一面:一面是两个面试官,给我的感觉是挺难的,起码和我面过的YY和阿里相比,问的内容深入程度都很高,但是两个面试官左边的很明显不懂android,我猜是java后台方向的,而右边的很明显是android方向的,问题一个接一个。

(1)说说自己最满意的项目,我就说和同学做的指南针app,他们说你画一下架构图吧,我说这app总共没几个页面没什么好画的,他们好像有点不爽,这也是为什么我觉得一面不太好的缘故。然后就跳过了,说那你讲讲项目中的难点吧,我就讲了动画的实现,左边的那个很明显听不懂,不时地望着右边的面试官,让我感觉不是很好…没讲一会他们就说可以了。

(2)让我讲讲项目中用的框架,我就说了Retrofit和Eventbus,和以往面试都很像的是果然都开始问实现的过程,问题一般都是xxx是怎么实现的请你说说看,这个我准备的比较多,就一直说说说,左边那个面试官也就是听吧…右边面试官不时记录着一些什么,后来我偷看到了,是各项能力的评分。

(3)我说了两个框架他们都没有提问,然后突然问我RxJava用过吗,我说用过,他说flatMap和map有什么区别,我当时就觉得这个问题不好说,因为是个理解性的问题,我自己当是也不能说完全理解了,就说应该是一对一和一对多的关系,然后说我也不是很明白。他紧接着就问,你举个实际的例子吧,我就说我真的举不出来,因为确实用的比较少,然后他说那你觉得什么例子可以用呢?我说应该是一个学生多个课程的时候,他就说你对这个的理解有点问题,当是就觉得GG了哈哈。

(4)问了我做项目时候遇到的困难,我就说了滑动冲突上的解决,然后就问我常见的设计模式有哪些,让我举个例子,我就说了单例模式,说让我手写一个线程安全的单例模式,我就说DCL是有问题的所以不太好,要用静态内部类,这里我当时觉得左边的面试官很奇怪,他问我DCL是什么,我就说二次检查锁定,他就说是锁两次?我说不是,是为了防止每次都要加锁的一种优化,他就感觉完全没有听过一样,硬要我写给他看,写完了之后还说你这样会死锁吧…我说不会啊,不是加两次锁,是在初始化的时候才加锁,他显得不能理解一样,让我有点奇怪哈哈。

(5)之后就完全问java基础知识,锁有哪些,有哪些作用和实现,有什么优势,具体来说就是synchronized和lock的区别,我又说到synchronized怎么实现的(二面问了同样的问题);然后问我volatile有什么作用,我就从两个语义上来说,还问了几个我记不太清了,想起来了就补充吧。

(6)然后就说了一道题让我手写,String表示的数字转成int,不能用系统api,这个题我记得leetcode上有,应该是很easy的题,很快就写完了,结果写完了他一看,你考虑正负号了吗?我说我忘了,当是觉得gg了,这么简单的题连这个都忘了,瞬间觉得可以回去了。然后我就说我是第一次现场写算法,有点紧张,没有考虑周全,他们俩直接笑了,说第一次啊,那你出去等二面吧,我说完谢谢就出来了,一面就这样结束了。

二面:二面等了一个多小时终于到我,是个中年大叔,我估计挺有资历的,面的还不错,挺愉快的。

(1)让我自我介绍,我就简单地说了说学校专业年级,做过什么项目

(2)问我指南针app做的过程中的实现,我就说了动画的实现,画了图解释了很多,他也就听一听,感觉不怎么提问

(3)问了我Retrofit怎么实现的,我说动态***,然后解释了动态***的实现方式,他也没有提什么问,后来我觉得应该他不是android方向的吧,只是技术总监之类的。

(4)让我介绍我的实验室项目会议系统,这是第一个问我业务的面试官…我就说了主要的功能,我负责的部分等等,他问我信息安全怎么保证的,我就实话实说信息安全没怎么做,用的json,加密由于能力有限做不了,他就笑了,我说学生项目考虑的比较少希望能理解。

(5)最后问我java里面锁的实现,我就从锁的膨胀来说,偏向锁、轻量级和重量级锁,然后介绍了一下使用用的情况,他也没提问,让我说完就结束了聊天的部分

(6)最后还是老样子,算法题,三个String敏感词同出现的字母和次数,这个题比较简单,直接用数组简单哈希就做出来了,解释就解释了半天…他似乎一直不能理解为什么x-('a'-0)就能哈希到对应的位置上,解释了半天才听明白,然后就结束了二面。

当晚就出了结果,第二天(周日)去参加了hr面。

hr面(终面):三个人一起面,一直都是聊人生,聊成长经历,没什么好说的,不过我觉得hr面还是应该自信一些,不知道我旁边的同学来自哪里,不过我觉得应该自信一些吧,该说就说不要担心太多。

3、offer通知

刚刚查到了结果,终面通过,应该不久就会联系,cvte完全是抱着参加玩玩的心态去的,也知道了知识上的一些缺漏,也算是有所收获吧。最重要的一点就是心态,在求职路上我们会经历很多失败,一个良好的心态是很重要的,好好准备不后悔就好,加油吧~

四、秋招面试面经
(1)阿里
秋招面试只面了阿里和华为,先记录一下阿里吧,只不过比较久远,有些记不太清
一面:那时候还在实习,所以问的东西也不多
(1)在实习中做了什么工作
(2)对于启动优化的思路,你是怎么做的?为什么使用aop来进行启动时间的计算,有什么问题?和android自带的工具呢?(都是与我的简历相关的)
(3)对于压缩算法了解吗
(4)eventbus了解吗?具体实现说说看?还问了eventbus3.0之后的优化思路,没答上来
(5)对于网络框架的了解
反正一面答的不好,可能由于没复习的缘故,很多点没答好,不过最后还是给过了
二面:应该是主管,问的问题不多
(1)在实习中做了什么工作,学到了什么
(2)关于简历里面说的优化,怎么做的,为什么这么做
(3)网络框架了解吗?mars有什么特殊的地方,这个当时正好看到了,说的还比较详细,关于xlog的优化等等
(4)对于未来工作的打算和想法
三面:最水的一面,全程十来分钟
(1)自己为什么做安卓
(2)对于未来的工作中的一些看法
(3)如果工作中遇到问题如何解决

五、面试经验
从我的经验来说,面试春招和秋招差距不算太大,只不过秋招大部分面试官可能更感兴趣的是你的实习经历(从我和同学的经历来看),所以对于明年的春招,学弟学妹们一定要抓紧,一个好的实习可以给你秋招带来很大的好处,这点非常重要。
另外关于简历的重要性,很多人都忽视了,在我看来面试官有7成问题都来自于你的简历,所以认真的写好简历并且掌握简历的内容是非常重要的,不过在我看来简历的门道太多,一时半会说不太清楚,后面整理好了再进行分享。
面试我觉得就是准备+简历+表达+运气的综合,所以在面试过程中有很多可以进行优化和学习的点,后面等有空了就及时总结出来分享给大家!就在终极大招中~

六、终极大招
本篇文章的所有内容和额外知识点总结下载地址就在公众号“IT大学生”中,赶紧关注回复“安卓”即可下载,包括自己打出来的超详细知识点整理~
公众号介绍:我们11个同学都是来自华工的本科生,在这次校招中我们腾讯的offer拿了7个(比例64%),阿里offer拿了3个,还有华为、美团、滴滴、网易等公司的offer,我们也分别是不同方向的,从安卓、IOS、前端到C++、java后台等,甚至还有机器学习方向。我们意识到我们有很多经验和经历值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是搞了一个公众号:“IT大学生”,不仅后面会有我们的总结和分享,大家关注之后直接后台留言提问,任何关于IT学习、面试和职业发展的问题,我们会在24小时内解答大家的困惑并持续跟进。希望我们能够用我们的力量帮助更多迷茫、困惑的学生们,帮助大家在IT道路上学习和发展~大家有问题就赶紧关注吧。
公众号二维码:
#阿里巴巴##腾讯##网易##美团##华为##广州视源电子科技股份有限公司##安卓工程师#
全部评论
沙发,膜拜一下大佬们
点赞 回复
分享
发布于 2017-11-25 23:43
牛逼 膜拜一波软件大佬
点赞 回复
分享
发布于 2017-11-25 23:46
博乐游戏
校招火热招聘中
官网直投
**,这么详细的总结,受教了,大佬
点赞 回复
分享
发布于 2017-11-25 23:47
66
点赞 回复
分享
发布于 2017-11-25 23:49
大佬要记得小弟哈哈哈
点赞 回复
分享
发布于 2017-11-25 23:49
牛逼啊***
点赞 回复
分享
发布于 2017-11-25 23:51
大佬求带呀
点赞 回复
分享
发布于 2017-11-25 23:54
哇校友 还是软件的@_@
点赞 回复
分享
发布于 2017-11-26 08:45
我猜一下莫不是LL
点赞 回复
分享
发布于 2017-11-26 08:50
👍👍👍
点赞 回复
分享
发布于 2017-11-26 09:25
牛逼,楼主腾讯是在啥部门呢
点赞 回复
分享
发布于 2017-11-26 09:56
最后选了哪家公司呢?
点赞 回复
分享
发布于 2017-11-26 13:52
老哥连mars源码也看了的吗…膜拜
点赞 回复
分享
发布于 2017-11-26 16:46
没人来加精吗
点赞 回复
分享
发布于 2017-11-26 17:38
打个标记
点赞 回复
分享
发布于 2017-11-26 20:40
安卓
点赞 回复
分享
发布于 2017-11-26 21:05
想问下你是怎么提高算法能力的啊,我碰到算法题就很慌
点赞 回复
分享
发布于 2020-02-09 17:11

相关推荐

11 128 评论
分享
牛客网
牛客企业服务