前言
关于面试题,可能没那么多时间来总结答案,大家可以互相留言讨论。个人主要记录一下准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的伙伴。
一面:
1、分类相关
2、iOS 内存机制以及管理方案详细说
3、http三次握手四次挥手
4、GCD 与NSOperation相关问题
5、SDWeablmage流程以及你设计图片缓存的你怎么设计
6、KVO的原理
7、assign和Weak区别以及其他关键字
8、+load和+initialize
9、编译器帮你加retain release 原理
10、websocket和 http长连接的区别
11 、算法:[1,2,3,4,5,6,7,8,9] k=3,把数组转换成[7,8,9,1,2,3,4,5,6],就是一个数组通过K的值把数组后K位挪动到前面。
二面:
1、runtime相关,你所使用的runtime 相关的方法
2、runloop机制,原理,流程
3、散列表的构成以及原理
4、app 从点击图片进入到结束的经历
5、dyld 怎么加载动态库
6、僵尸对象原理
8、设计一个日志系统
9、mmap 怎么保证数据不丢失
10、为什么会发生OOM,发生后iOS系统是怎么杀掉APP的
11、FFmpeg的理解
12、app中的直播,你怎么去规划或者说你是怎么去考虑架构的以及整个流程?(个人主要是从推流端,拉流段,解码这三方面去说的比较理论化)
13、算法
数组是否可以三等分
设计一个集合类,包含两个方法,add()可以插入数据,query(_n:int)->可以查找集合不大于入参的一个元素,两个方法的时间复杂度
文末推荐:iOS热门面试文集