双非本科学渣挑战小米Android岗,面试官说我年轻人不讲武德,
广州本科毕业,学渣一枚,20年有幸参加了小米的招聘会,在8月底的时候投递了简历,9月底收到了面试通知,感觉华为的面试对我们应届生还是很宽容的,虽然过程中气氛很严肃,但问的东西自己也都答了一些,基本上面试官考察一下你的掌握程度,达到他们要求的线就ok了,目前已经收到了小米的录用意向书,分享一下自己的面经,以供大家参考,希望大家都能够进入自己心仪的公司。
面试流程
发送简历——通知一面——一面结束(告知一周内有二面)——二面结束——收到邮件,面试通过,反馈官网注册的简历编号——收到性格测评邮件——流程在官网更新——官网流程更新为录用排序中——收到offer。(从发送简历到拿到offer历时33天)
面试经历
一面(面试官是一个比较年轻的前辈,感觉有点严肃):
上来首先自我介绍,随后两道算法题:
1、数组中最长上升子序列
2、连续子数组最大和
Java:
1、匿名内部类访问局部变量的时候,为什么变量必须要加上final?
2、HashMap底层数据结构?怎么解决hash碰撞?扩容机制是怎样的?
3、讲一讲HashTable和HashMap的区别?
4、LinkedHashMap知道吗,讲一下?
5、讲一讲HashMap和TreeMap的区别?
6、JVM内存区域模型?各部分具体的作用是什么?
7、类加载的过程讲一下?
8、synchronized和volatile的区别
9、DCL一定是安全的吗?为什么?
10、什么是指令重排?
Android:
1、apk有几种安装方式?apk的安装过程是怎样的?
2、讲一讲Android都用过哪些虚拟机?Dalvik虚拟机和ART虚拟机的区别是什么?
3、Android系统是基于Linux内核的,为什么还要用虚拟机?
4、讲一讲事件分发机制?.
反问:
1、对Android未来发展的看法?
2、部门是做什么的?
总结:早上状态很差,简单问题也会卡壳,希望大家还是能够选择自己状态好的时间点面试……。
后来面试官直接通知我过了,告诉我过几天会有第二面
二面(这次面试官是一个年龄稍长的长辈,气场很强大,估计是技术总监):
- 介绍一下项目
- Android四大组件,详细讲一下。
- Launcher启动APP的全过程。
- icon存入口Activity信息
- AMS通知Launcher去pause。
- Launcher通知AMS已经pause
- AMS检查进程是否已经启动,如果不启动则启动进程。并且调用ActivityThread的main方法。
- 启动之后通知AMS已经启动
- 然后AMS将入口Activity信息传递给APP。
- APP启动对应入口Activity,并且创建对应上下文并且调用Activity的onCreate方法。
- 进程间通信,AIDL,Binder。扯了一会说进程间通信平时怎么做的,就说了一下AIDL相关的Demo实现什么的。说到了自己程序里面有拉起微信的这个功能(也就是广播)。
- 设计模式了解吗,平时用过哪些设计模式。
- 算法题:输入一个数n,代表有n个点,一个二维数组,二维数组代表相连的点,要求输出连通起来的点。
如果n=6,数组假设是{{1,2},{2,3},{4,5}},则输出{{1,2,3},{4,5},{6}}
吐槽一下,本来早上约的9.30和10.30两轮面试,一次约两轮我也是醉了。然后就二面拖了快一个小时才面上。早起代码状态真的差,这两题都写了分别用了快20分钟,真的捉急。
一个午觉起来,收到了面试通过的短信,效率还是非常高的。还以为挂了呢,看来只是面试官想吃饭了……
三面:
- 毕业课题讲一讲,遇到的最难解决的问题?怎么解决的?实际的应用场景?
- java做过什么项目?秒杀系统照着网上的课程做的吗?
- 手撕 有正有负的递增序列中找到绝对值最小的数字
- 评价一下自己,自认为适合做哪些工作?不适合哪些工作?
- 平时用什么app?谈谈抖音和B站的区别
- 用户用app最可能在乎哪些点?视频加载慢怎么解决?
- 从设计的角度或者客户端、代码设计的角度讲讲能对这些app做什么?
- 个人职业规划
- 64匹马,8条赛道,找到跑的最快的5匹马,怎么做可以让比赛的次数最少
- jvm的内存结构,他们分别都是用来干什么的
- OOM是什么,怎么会造成OOM
- 说几个常见的Exception
HR面(<30分钟):
-
自我介绍
-
公司实习期项目
说了RePlugin框架原理,说了ffmpeg动态链接库开发方面的失败经历,说了Android的适配,和最近影响到的AndroidQ相关新特性的适配。 -
自己大学生活中攻克的最难的技术难点。
-
什么情况下会压力特别大,怎么处理的。
-
职业规划
......
综合起来就是了解个人情况,技术问题都是自己说的。还是非常愉快轻松的。
面试总结
能拿到小米offer,肯定是非常高兴的,现在已经入职小米了,希望能够与小米携手,共同进步!最后想告诉大家,做技术这一块,一定要有自己的一个学习计划和学习方法,要学会不断提升自己,才能够走到更大的舞台上!
同时面试也没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
上面分享的小米面试题,这只是Android全套面试真题解析的小部分!这里附上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2019-2020面试真题解析,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习
最近面试被怼了?缺面试题刷提升自己吗?
来获取学习资料提升自己去挑战一下BAT面试难关吧
2020年虽然路途坎坷,都在说Android要没落,但是,不要慌,做自己的计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。祝大家2020年万事大吉。
给大家一些建议
1.遇到问题,不要没有进行仔细分析,就直接百度和谷歌
2.学习知识的时候,不要没有自己的思考和理解,死记硬背
3.要记得深入追究一个问题的本质原因
4.一定要有自己知识点总结和梳理
5.学到知识点,没有很好的实践,动手能力不够
6.要自己的学习的方法
7.确定目标和找到有效的学习方法