快手Android校招三四面
三面
三面的内容主要是项目引申出来的,全程在聊项目
- butterknife实现原理、为什么被弃用(早期项目挖的坑,就回答了注解,没深问)
- 事件分发机制,滑动冲突
- RecyclerView分页加载的实现
- 讲了下Glide,生命周期、缓存机制,缓存清除方法
- RecyclerView的缓存机制
- 算法题:字符串转整型(越界那里没有处理好)
四面
四面主要考察一些场景的问题,发散思维的问题
- 学习新知识的方法,遇到了什么困难,怎么解决
- 遇到屎山代码怎么阅读(抓包,打印日志、打断点)
- 场景题:搜索联系人,后台返回的数据很大,怎么解决?网络请求时间长怎么解决?(聊了很久说了使用shortInfo和缓存,最后面试官的意思是让我了解下http里面的复用机制)
- 分发事件:一个viewgroup,里面两个子view,手指按下ViewA移动到ViewB后抬起的整个事件分发流程。(分ACTION_DOWN和ACTION_MOVE和ACTION_UP来说)
- 算法题:取所有人空闲事件的交集
input:listof{listof{[3,4],[9,10]},listof{[3,5],[11,20]},}output:listof([3,4])
总结:快手的整个面试体验还不错,面试官够专业,不会跨服聊天。槽点就是四轮技术面,不知道为啥有这么多轮服了,再一个就是算法题,四轮下来7个算法题,好在我比较幸运没有手撕hard。。。许愿个offer
#快手##校招##面经#