快手客户端面经 iOS
9月26号 视频一二三面
快手一面:40分钟
1.iOS反射机制
2.iOS的timer和CADisplay的区别
2.二叉树,二叉平衡树,AVL,红黑树,B树的区别
3.二叉树公共节点
4.随机数生成,真随机数和伪随机数
5.不用第三者,怎么交换两个数
6.1000个瓶子,里面有1瓶毒药,只有10只老鼠,老鼠吃了之后一星期会死亡,怎么测试。2^10 = 1024
其他问题为计算机网络问题
快手二面:90分钟
1.UI的渲染步骤,视图打包流程,cpu和gpu工作,为什么要双缓冲区
2.图片怎么显示的,以及图片缓冲区
3.NSObject结构体里面有什么,大小为什么是16字节
4.KVO怎么实现,_会不会触发,成员变量会不会触发,kvc+成员变量会不会触发,不用setter怎么触发kvo
5.操作系统内存布局,有什么区
6.一个OC对象的内存布局
7.滑动优化怎么搞
8.什么是runtime,什么是runloop,有几种mode
9.NSObject的内存布局
10.isa指针和super指针
11.元类是什么
12.所有OC对象都继承与NSObject吗
id是什么
13.SDWebImage的清除缓存策略(我说了YYCache。。)
14.block是什么
15.LRU算法怎么实现
16.Swift和OC的方法调用(静态派发和动态派发)
17.两个链表的公共结点
18.链表中环开始的地方,原理说出来
19.项目里面最体现你技术的点。
快手三面:25分钟
1.什么是hash
2.hash的具体实现,程序里面一个对象怎么通过hash定位到具体的内存区。
3.hash数组扩容(说了数组到某阀值扩容并且拷贝)
4.一个天平,4个砝码,能秤出多少种重量.我没了解清楚面试官说的四个砝码重量是不是一样?一样的情况下不是就四种吗😥这题真不会。