写在前面
今天和一同学吃饭,互相诉了一波苦。他吐槽了一下这周五去美团面试不是很顺利,我吐槽了一下,业务大改版。这一个月恐怕要疯狂加班...
他提到美团的时候,这让我想起来了2017年10月中旬的时候,那场莫名其妙的美团校招面试邀请...记得很清楚,当时我在一家创业公司实习,那天是周四下午。电话约面试,时间是周六(也是神奇)。然后周五公司业务上线,很晚回家。周六是昏昏沉沉的去面了试...有点小遗憾,如果好好准备一下,调整下状态。没准我现在就在望京研发园工作了...意淫.png
到了美团大厦,也看得出来美团在赶时间,一个大厅同步在面试,一面完成之后紧接着二面,三面。
很幸运的走到三面,也很遗憾的只走到了三面。我是提前到场,偷听到了他们HR的交谈,说今天是面签,所以在听到三面面试官说到回去等通知,就知道挂了。虽然有些遗憾但也无所谓毕竟的确还是发挥的并不好。
以下只记录问题,因为答案是什么我也不清楚…很多内容扣的很细。
正文
一面
说一下常用的排序算法?
说一下快排的思想?
一个有序数组集合,找一个下标,你的思路是什么?
完全二叉树和满二叉树的区别?
操作系统怎么样?(回答:不怎么样,面试官笑了笑,也没在意)
Activity的生命周期相关?
从栈顶Activity回到栈底Activity的解决方法都有什么?
异常情况杀死Activity怎么保存数据?
卡顿情况的产生,定位和解决?
View的整体绘制流程?
手写一个方法获得当前布局的层级深度?
常用的垃圾回收?
谈一谈JVM?
谈一谈你对MVP和MVVM的看法?
一面整体很顺利,面试官也没有深入的问下去,就让我直接去了二面。
二面
手写输出一个二叉树的侧面图。
手写一个你最熟悉的排序算法。
有一个类怎样改变内部final类型的变量。
final修饰变量、方法、类都有什么特性。
static修饰变量、方法、类都有什么特性。
处理过内存泄漏么,都用什么样的方法处理的,为什么。
说一下你经历的项目中印象最深刻的一个点。
聊一聊你最擅长的安卓地方。
- 看过哪些开源项目,聊一聊。
二面就有些磕磕绊绊,一开始的手写算法就卡住了,因为那个时候算法是自己的弱项。磕磕绊绊写了写思路,也就对了50%。而且面试官很强势的一再追问,自己险些没有招架住,所以接下来心态有点崩,很多问题即使是会,也答的有些心虚。后来算是有惊无险的进了三面。
三面
手写一下遍历二叉树的层度。
图的深度遍历的实现方法。
消费者生产者模型。
聊一聊aidl,谈一谈Binder机制,Service通讯的方案。
最近在做什么,(做锁屏),聊一聊实现的思路,怎么提高锁屏出现的成功率。
自定义View思路,需要注意什么。
Handler机制,为什么loop是死循环。
聊一聊你做的最复杂的自定义View。
聊一聊事件分发
三面的话整体很崩,其实问题很大众化,但是每一处都问的很细,比如事件分发:为什么dispatch里边DOWN事件不能拦截。mFirstTouchTarget作用…等等总之问的非常的细…
面试整体看来,算法问的太多了,不是说题多,而是占用时间比较多。基本上来说50%时间都是在问算法,30%再问Java的基本特性的细节。剩下的20%算是安卓。因为安卓看的还是比较深的,所以基本上没被问住。但是算法真的很蛋疼…
尾声
所以在这里,建议如果有将要毕业找工作的童鞋们,如果有准备去美团的,可以着重准备准备算法内容,刷一刷题之类。祝各位好运啦~