快手安卓客户端面经

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

一面:
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实现

全部评论
千万别选安卓,快跑,测开都比安卓强1万倍,安卓啥也不是,地位最低,路过的扫地阿姨都要鄙夷
2 回复 分享
发布于 04-16 12:36 江苏
二面挂了吗
点赞 回复 分享
发布于 04-12 13:30 广东

相关推荐

09-17 20:33
山东大学 Java
1、自我介绍2、项目拷打3. Java 里面有哪些基本数据类型,分别占多少个字节?4. Java 里面 LinkedList 和 ArrayList 的优势分别是什么,各自适用场景有哪些?5. ArrayList 的线程安全性如何,若要在多线程场景下使用列表,有哪些解决方案?6. Java 的堆里面新生代和老年代是如何划分的,新生代又分了几个区,新创建对象在其整个生命周期里是怎么在新生代和老年代流转的?7. 数据库有哪些事务隔离级别,分别能解决哪些并发问题,解决原理大概是什么?8. MySQL 的可重复读隔离级别能不能解决幻读问题,为什么?9. 什么是聚簇索引和非聚簇索引,它们的区别和联系是什么?10. 假如有 SQL 查询语句,有没有可能只用到非聚簇索引而不需要用到聚簇索引,举例说明11、如果是 OOM 了怎么排查?12、自己有用过 jmap 和一些工具去排查过错误吗?13. HTTPS 协议的客户端和服务端之间的通信过程是怎样的?14. 当 Java 进程的 CPU 使用率突然升高时,排查思路是什么,会用到哪些工具(如 Linux 命令、JDK 工具)?15. 频繁 FullGC 排查​呢?思路和工具?16、谈谈 Kafka17、为什么项目中技术选型用的是 RabbitMQ?18、RabbitMQ 的数据持久化是怎么做的?19、线程和进程的区别?20、线程的安全怎么保证?21、进程通信的方式有哪些?22、进程间通信,它的数据传输大概是怎样的流程?怎么能让数据从一个进程传递到另一个进程去?
查看22道真题和解析
点赞 评论 收藏
分享
评论
7
38
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务