回忆2020年的美团Android岗的面试之旅,这面试官太会问了
作者:黄登
前言
本人是某渣院本科毕业,学的专业就是计算机,回头一想自己毕业也有好几个年头了,毕业出来就一直在家小型互联网公司工作,薪资的话马马虎虎,能够维持住自己的生活。但自己自始至终都有个想进互联网大厂的想法,于是每年都会定期往一些公司进行投简历,最后投了多少家面了多少次,自己也记不清楚了,面上的没面上的比例应该是2:1吧。
记得最深刻的一次面试经过就是2020年美团的面试之旅,也就是我现在呆的这家。为什么这么深刻呢?这也是疫情给我留下的印象吧。因为那时候在家办公,于是自己利用空余的时间去网上找了不少面试相关文档进行学习刷题,这也是为疫情过后的面试做准备吧。
我大概是5月份中旬向美团那边投出的简历,接到面试通知的时间是五月底,于是就向公司请了几天的假去面试了,技术面总共是三轮。下面是我的一个面试过程。
美团一面:技术面
手写算法题。一共有几个,面试官会随机抽一个作为题目。
给出一个序列包含n个正整数的序列A,然后给出一个正整数x,你可以对序列进行任意次操作的,每次操作你可以选择序列中的一个数字,让其与x做按位或运算。你的目的是让这个序列中的众数出现的次数最多。
请问众数最多出现多少次?
1.Activity的生命周期、加载模式。 什么时候会用到singleTask?
2.Handler机制 子线程可以创建handler吗?一个线程是否只有一个Looper? 如何保证一个线程只有一个Looper?
3.多线程的方式有哪些?
4.生产者消费者模式
5.wait 和 sleep的区别
6.String、StringBuffer 、StringBuilder的区别 7.ANR异常发生条件,如何分析ANR ?
8.自定义View和ViewGroup
9.事件处理 分发,拦截,处理。
10.GC算法
11.四大引用 强,软,弱,虚,并说明下合适GC
12.动画 View动画,属性动画,帧动画。再说下View和属性动画区别。
13.JVM
14.原理屏幕适配相关问题
差不多就问了这几个问题,其他的忘记了,其中美团的手写算法在业界算是比较出名,很多小伙伴可能卡在手写算法上。然后就是一些Android和Java的细节性东西,这些基础内容只要有一点工作经验的都基本能说得上来。
算法复试
1、算法。连续问了好几个,都是数组,层层递进的,但是我忘了,只记得最后是找出数组
2、中重复的数字
3、进程和线程的区别
4、程序在运行时操作系统除了分配内存空间还有什么
5.二叉树的中序遍历,非递归
6.存一个通讯录,包括增删改查,用什么数据结构?
7.二叉树的中序遍历,非递归?
美团二面:技术面
1.Http和Https的区别?
2.看过哪些源码?Glide原理?
3.OkHttp原理?
4.Retrofit原理?为何用代理?代理的作用是什么?
5.ButterKnife原理?用到反射吗?为什么?6.eventbus的原理。
7.Handler原理
8.Binder原理
9.ANR异常如何查找并分析?
10.JVM内存模型?性能调优?
11.垃圾收集算法有哪些?G1算法?
12.加密算法有哪些?对称加密和非对称加密的区别?
13.TCP的三次握手?两次行不行?为什么?TCP攻击知道吗?如何进行攻击?
14.性能优化方面
15.会对代码进行review吗?何时review?怎么review?
16.项目中遇到的让你棘手的问题?多久解决,怎么解决?
17.平常如何学习?何时学习?怎么学习?学习渠道?
二面跟比一面比起来,会更加深入,偏向原理性质。
所以大家平时的编码过程中,要多思考,多看源码,要理解实现方式,而不要一味的去写代码完成需求,长此以往的话未来很容易被后浪淘汰的。
这里必须得感谢一下我毕业后的第一个领导张哥,多亏张哥那会就告诉我一定要多看源码,不然这里已经挂了…
美团三面:
1.前两轮面试感觉如何?
2.热修复
3.插件化组件化
4.动态化
5.Kotlin
6.Flutter
7.聊了一下之前的公司和项目
8.你觉得小团队好还是大团队好?
9.说说自己的优缺点发展方向
10.职业生涯规划 是先讲究宽度还是讲究深度,为什么?
11.为什么离职?
12.其他小问题:哪里人啊?现在工资怎样?要求如何,何时到岗?有什么问题要问我的吗?
三面面试官可能考虑到之前两轮的原因没有问太多技术问题…
然而我确实已经是强弩之末了,在我感觉中,他竟然上来就是一套连环拳?
- 你觉得小团队好还是大团队好?
- 说说自己的优缺点??
- 职业生涯规划???
行了行了,我不装了,坦白了,我是个菜鸡!
面试总结
面试官都非常的友好,逻辑性非常强。综合素质很高。面试过程中虽然针对的都是技术问题,但是考察的包含了逻辑思维和产品思维以及沟通能力等综合素质。
持续更新--请Android的小伙伴关注! 喜欢的话给一个赞吧!
答案:
由于答案太多,我整理成了文档形式方便大家阅读,但因简书不能上传文件,大家可以直接到我的GitHub项目中查看:https://github.com/733gh/Android-T3/blob/master/JianShu.md