快手安卓客户端面经

时隔一年半再面快手,感觉难了很多。

一面:
1.算法:连续子数组的最大和。
2.泛型string的list是否能add一个数,编译是否通过?运行时是否会报错?如果想在运行时拿到泛型应该怎么做?
3.假如一个static变量,更新它的值,另一个进程是否能获取它的最新值?另一个线程呢?
4.volatile关键字的作用?在双重检验锁中,不使用它会有什么问题?
5.synchronized关键字,修饰类和修饰方法有什么区别?
6.activity跳转过程中,生命周期的变化?
7.activity如何与fragment通信?
8.在view中,requestlayout和invalidate方法有什么区别?
9.场景题:实现一个根据优先级对子view进行测量的自定义viewgroup

二面
1.在B站主要负责什么模块?
2.详细说下下载组件的实现,对于大文件下载如何优化?
3.对于多个下载任务如何优化?
4.重载和重写的区别?
5.HashMap的实现,有哪些线程安全的集合类?
6.synchroized和volatile的区别?
7.atomic类的实现原理?
8.activity之间如何实现通信?传递的数据是否有大小限制?
9.activity与service如何通信?
10.如何减少布局嵌套?
11.线性布局的优点?
12.自定义view的实现方式?
13.view的渲染流程?
14.recycledview的优化方式?
15.bitmap如何优化?bitmap池是什么?
16.算法:生产者消费者模式,kotlin实现

全部评论
二面挂了吗
点赞 回复 分享
发布于 04-12 13:30 广东

相关推荐

评论
2
6
分享

创作者周榜

更多
牛客网
牛客企业服务