双非本科学渣挑战小米Android岗,面试官说我年轻人不讲武德,4面拿下offer

广州本科毕业,学渣一枚,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(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习

最近面试被怼了?缺面试题刷提升自己吗?

Android学习PDF+架构视频+面试文档+源码笔记

获取学习资料提升自己去挑战一下BAT面试难关吧

2020年虽然路途坎坷,都在说Android要没落,但是,不要慌,做自己的计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。祝大家2020年万事大吉。

给大家一些建议
1.遇到问题,不要没有进行仔细分析,就直接百度和谷歌
2.学习知识的时候,不要没有自己的思考和理解,死记硬背
3.要记得深入追究一个问题的本质原因
4.一定要有自己知识点总结和梳理
5.学到知识点,没有很好的实践,动手能力不够
6.要自己的学习的方法
7.确定目标和找到有效的学习方法

猜你喜欢

转载自blog.csdn.net/ajsliu1233/article/details/110846642