9.10快手开放平台客户端开发二面
实习
1.离线包缓存命中率是如何提高的?
2.如果一个页面用户点击率并不高,大部分用户都是首次打开,如何提高离线包缓存的命中率?
3.webview动态切换的是什么内核?切换策略是什么?为什么选择降级去加载?
4.实习中使用了哪些设计模式?除了你实习中的应用,单例模式还有哪些应用场景?
算法
1.K个一组反转链表
场景题
实现一个聊天的功能,有两个关键点,一个是核心功能聊天,另一个是好友关系和消息的存储结构
1.用户表和消息表如何设计?
2.好友关系表如何设计?
3.如果有添加好友的功能,这个表怎么修改?
4.如果想要实现实时通信,需要用什么技术实现?
5.假如发了100条消息,如何保证消息按照顺序发送?
6.如果有在线和离线的状态,你给一个离线的用户发送消息,对方上线后才会接收到,如何设计?
7.实现这个聊天软件的客户端,如果让你分层级进行开发,你会将这个软件分为哪些层级?
#软件开发笔面经##快手校招#