快手客户端开发 一二三四hr面
一面 9.14:
1、自我介绍。
2、Java基本数据类型,float和double占几个字节?
3、ArrayList和LinkedList的区别及复杂度。
4、HashMap索引计算,哈希冲突处理,是否线程安全,怎么保证安全,其他处理哈希冲突的方法等。
5、ConcurrentHashMap和HashTable的区别。
6、设计模式。
7、Android生命周期及Activity四大组件。
8、Android的启动场景举例。
9、Handler机制。
10、View相关。
11、JVM运行时内存划分。
12、GC算法。
13、sychronized关键字。
14、排序算法,特别介绍快速排序。
15、算法:
输出螺旋矩阵。
16、反问。
二面 9.14:
1、自我介绍。
2、介绍项目。
3、客户端获取实时数据的方式,哪种最好,原因?
4、TCP和UDP的区别。
5、TCP如何保证可靠传输,要使用UDP该如何实现?
6、HTTP和HTTPS的区别。
7、HTTPS完整过程,根证书。
8、进程和线程的区别。
9、死锁。
10、设计模式。
11、进程间通信。
12、线程间通信。
13、算法:
数组只含0、1、2,要求o(n)复杂度将该数组排序。
14、反问。
三面 9.24:
1、自我介绍。
2、场景题(代码实现):
设计一个购物车模块,包括多种不同的促销活动,并计算最后总价。
3、算法:
最长递增子序列。
4、项目中最大的收获。
5、技术栈。
6、反问。
四面 9.28:
1、自我介绍。
2、详细问Android项目。
3、设计模式的理解,及六大原则。
4、算法:
找到第K大的数,写代码运行实现。
5、反问。
hr面 10.9:
1、自我介绍。
2、常规hr问题。
3、反问。
总结:一二面连面,后面两轮技术面都是了leader面,这是我经历过轮数最多、发挥相对较好的一次面试,总的感觉很不错,就是流程持续时间太长。
#面试复盘##快手##面试题目#