作者:白天不懂夜的黑
背景:
985非科班硕士,毕业5年,从事开发4年,会的技术有flutter、kotlin、NDK、Gradle、性能优化、移动架构、UI、音视频等。在今年的7月份就投了一份简历去滴滴,后面通知面试,7月底收到HR的电话说“Offer已经发到你邮箱了”。
今日特此来分享一下我们面试过程,希望能够帮助到大家!
面试过程:
一面
1.android的消息机制
2.为什么每个线程最多只能有一个Looper?这是怎么实现的?
3.Handler为什么会引发内存泄漏?有哪些解决方式?
4.安卓中常用的四种引用类型是什么?它们的特点分别是什么?
5.flutter的使用体会
6.statelesswidget和statefulwidget的异同
7.flutter的状态管理
8.JVM的GC算法都有哪些?详细介绍一下分代算法中新生代部分。'stop the world'是什么意思?
9.android的事件传递机制。如何解决滑动冲突?
10.给一段代码,要求找出代码中出现的错误,并且说出这些错误会导致什么报错
11.HashMap的实现。红黑树的性质
二面
1.android线程通信有几种实现方式?
2.自己做的社交app有用到哪些第三方库?
3.为什么选用Glide作为app的图片加载库?有考虑别的库吗?
4.Glide使用时要注意哪些问题?
5.android的进程通信机制有哪些?它们是怎么实现进程通信的?
6.了解ANR吗?什么情况下会出ANR?为什么消息队列不会引发ANR?
7.android的事件传递机制
8.adnroid的自定义view如何进行优化?
9.app如何保活?
10.你写的应用的抽象架构是什么样的?为什么要搭建这样一个模型?
11.LiveData和ViewModel的实现原理
12.为什么谷歌开始建议开发单Activity的app?
13.了解模块化吗?什么是模块化?
14.flutter在状态管理上都有哪些解决方案?你对这些解决方案有什么看法?
15.算法题:合并两个有序链表
三面
1.Room库和传统的Sqlite有什么不同?它是怎么实现的?使用Room的好处在哪里?
2.如何对app进行增量更新?
3.在一个陌生的城市,如何确定该城市是否适合投放网约车业务?
4.要对1000个人进行新冠检测,最少要检测几次?
5.app国际化会遇到哪些难题?
image总结
三面就问了这五个问题,然后面试官就在和我介绍滴滴的国际化进程和中国移动互联网的一个发展趋势。同时面试官也对我的未来技术发展提出了很多建议。我和面试官也对flutter的前景做了一些探讨,和经验丰富的前辈对话总能学到很多东西,非常感谢面试官。
经验和教训:
面试开头的自我介绍最好能够简单说明自己强项,好引导面试官多考你擅长的领域;当然简历也务必需要好好整理,至少让面试官有针对性地进行考察。
分享:
下面是有几位Android行业大佬整理有我收录的一些进阶架构资料。有Android架构视频+BATJ面试专题PDF+学习笔记等资料。希望能够帮助到大家提升技术。如果大家想要获取的话,可以私信我【666】免费获取哦~ 或者直点击查看详情
喜欢本文的话,不妨顺手给我点个小赞、评论区留言或者转发支持一下呗~
网友评论