滴滴国际化部门客户端开发面经(已拿意向书)
8.10更新:已拿意向书
8.5更新:面试官有会迟到了一会儿,但是人还是特别好的。hr面基本上没有怎么为难人,就是介绍了一下国际化部门的发展,然后问了问手里的offer还有自己目前怎么打算的。感觉上是不会挂人,如果大家到了这个阶段基本上可以安心了。
8.4更新:还要再来一轮hr bp面……这流程是真的长……
8.3更新:四面已经面完,面经更新在下面。
7.29更新:接到滴滴hr电话,说sp属于新锐计划,三轮面试通过后还需要再进行一轮技术委员会面试,由技术中台的leader作为面试官。面完更新面经
滴滴是在牛客网上的SP投递通道报名的,虽然我不知道是不是真的是SP……反正目前大家就权当作是正常的面试来做一个参考吧。因为滴滴的面试规则是三个小时三轮面试,只要你过了马上就会面下一面,所以整个过程都是在一个下午内完成的。
一面
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国际化会遇到哪些难题?
三面就问了这五个问题,然后面试官就在和我介绍滴滴的国际化进程和中国移动互联网的一个发展趋势。同时面试官也对我的未来技术发展提出了很多建议。我和面试官也对flutter的前景做了一些探讨,和经验丰富的前辈对话总能学到很多东西,非常感谢面试官。
四面
四面的面试官说基础性的问题前面三面已经问的很全了,所以这次面试只问一两个发散性的问题。
1.假设两个线程在两个CPU核上并行运行,它们要对同一块内存区域进行读写,如何保证数据的正确性?想出尽可能多的方案。
2.地图实际上是由无数个矩形图片渲染而成的,我们将这些矩形图片称作“瓦片”。如果让你设计一个地图渲染引擎,你要如何与后台规定瓦片的尺寸?从尽可能多的方面去考虑。
3.Flutter在ios上的表现不如android上的表现好,你怎么看这个现象?
4.你为什么喜欢Flutter?
四面面试官非常nice,从头到尾一直是笑着进行的面试。面试的氛围也特别好,与其说是面试,不如说是前辈在和后辈进行技术讨论。面试官也从过来人的角度对我后面的技术发展提了自己的建议,非常感谢面试官。总的来说,四面的氛围并没有想象得那么严肃,面试官也说面试得很愉快。
#面经##校招##滴滴##安卓工程师#