快手Android校招三四面

三面

三面的内容主要是项目引申出来的,全程在聊项目
  1. butterknife实现原理、为什么被弃用(早期项目挖的坑,就回答了注解,没深问)
  2. 事件分发机制,滑动冲突
  3. RecyclerView分页加载的实现
  4. 讲了下Glide,生命周期、缓存机制,缓存清除方法
  5. RecyclerView的缓存机制
  6. 算法题:字符串转整型(越界那里没有处理好)

四面

四面主要考察一些场景的问题,发散思维的问题
  1. 学习新知识的方法,遇到了什么困难,怎么解决
  2. 遇到屎山代码怎么阅读(抓包,打印日志、打断点)
  3. 场景题:搜索联系人,后台返回的数据很大,怎么解决?网络请求时间长怎么解决?(聊了很久说了使用shortInfo和缓存,最后面试官的意思是让我了解下http里面的复用机制)
  4. 分发事件:一个viewgroup,里面两个子view,手指按下ViewA移动到ViewB后抬起的整个事件分发流程。(分ACTION_DOWN和ACTION_MOVE和ACTION_UP来说)
  5. 算法题:取所有人空闲事件的交集
input:
listof{
    listof{[3,4],[9,10]},
    listof{[3,5],[11,20]},
}
output:listof([3,4])
总结:快手的整个面试体验还不错,面试官够专业,不会跨服聊天。槽点就是四轮技术面,不知道为啥有这么多轮服了,再一个就是算法题,四轮下来7个算法题,好在我比较幸运没有手撕hard。。。许愿个offer
#快手##校招##面经#
全部评论
楼主什么项目呀,是实习还是自己做的
点赞 回复
分享
发布于 2021-09-28 20:00

相关推荐

1、拷打项目。具体介绍一下无障碍权限。项目中gemini是干什么的?如何实现版本更新提醒的?如果提示更新时发生异常,比如网络状况不好,怎么处理?网络请求怎么实现的,用了第三方库吗?(OKHTTP3)了解过这个库的原理吗?(没有)那你具体用了库中的哪些方法?2、安卓中view绘制的过程经历了哪些阶段、哪些函数?3、了解过安卓中UI控件分发的机制吗?在relative layout中有一个button,点击button,事件是怎么转发的?4、从点击安装apk,到icon出现在桌面上,这个过程中系统发生了哪些事?从icon出现在桌面上,到应用的界面出现,又经历了什么过程呢?activity调用onCreate之前发生了什么?5、知道AFS(Andrew File System)和PFS(没听清,也查不到)吗?6、介绍一下Java中的反射机制。(拿了一个题,写Java反射的示例)。反射最主要的特点是什么?7、了解Java中的String类是怎么实现的吗?8、在你的安卓项目中遇到过内存泄漏吗?有哪些技术,如果使用不好可能会引起内存泄漏?9、了解过安卓里的handler吗?handler会引起内存泄漏吗?如果handler不指认线程,那它会在哪个线程上?10、介绍一下面向对象的特点。你了解哪些面向对象的设计原则?了解过单一职责原则、迪米特法则、依赖倒置吗?11、设计模式从哪学的?写一下你写过的最全面的单例模式。12、了解过HashMap的底层原理吗?是单一地用红黑树吗?什么时候会转化成红黑树呢?(链表长度大于8)为什么是8个?13、了解过HTTPS吗?加密用的什么机制?14、进程和进程的区别是什么?协程和进程的区别是什么?了解进程间通讯吗?15、算法 毒蘑菇、找出string B中的所有字母是否在string A中很注重知识的全面性,经常追问“还有吗”反问:技术栈是什么?(Java+Swift)如何提升算法能力?(其实不太重要,针对面试就是贪心、DP)
点赞 评论 收藏
转发
点赞 评论 收藏
转发
1 5 评论
分享
牛客网
牛客企业服务