前言
最近在网上找了不少面试相关的学习文档准备面试!如果您觉得里面的问题不错,在面试准备的时候学习看看.
这次终于拿下了这个心仪很久的岗位
有记录面试题, 希望对你们有帮助~! 少走一些弯路! 请看答案在最下面!!
美团一面:技术面
手写算法题。一共有几个,面试官会随机抽一个作为题目。
给出一个序列包含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的小伙伴关注! 喜欢的话给一个赞吧!
最后
小编在网上收集了一些 Android 开发相关的学习文档、面试题、Android 核心笔记等等文档,希望能帮助到大家学习提升,如有需要学习参考的可以直接去我 GitHub 进行访问查阅。
GitHub地址:
https://github.com/733gh/Android-T3