面试总结
最近去面了几家,发现问的问题其实都大同小异,主要问runtime,runloop,消息转发,内存管理,多线程,还有一些算法题。
问过的问题能记起来的就这么多:
1、怎么样会造成死锁;
2、怎么样能让线程根据自己的预想来执行,比如让1、3、5先执行;2、4、6后执行
3、runtime(消息传递和消息转发,方法交换)
4、strong/retain/copy/week/assgin
5、iOS内存管理,autorelease{}(怎么样实现autorelease)
6、多线程
7、KVO和KVC
8、delegate和通知
9、block操作,底层实现(比如操作局部变量,全局变量,用__block,__weak修饰)
10、算法(红黑树,从一个字符串中找出对称的子串)
11、数据库操作,同步问题,sql
12、SDWebImage实现原理
13、FMDB和FMDB怎么样实现线程安全
14、runloop
15、http协议 怎么实现断点续传
16、tableView卡顿,都有什么方式进行优化
17、怎么样知道主线程中的界面卡顿
18、什么时候用NSOperation,什么时候用GCD,若是让三个线程1、2、3,顺序执行,用哪一个比较好。
19、大量数据存取的时候怎么办 会有卡顿的问题 怎么处理
20、冒泡,快排,f(n) = f(n-1)+f(n-2)
21、iOS事件的传递和响应,若是某一个子视图超出父视图的frame范围,点击会不会有响应,若有响应,为什么;若没有响应,怎么样才能让它响应
22、单例,单例怎么保证只初始化一次,它的copyWithZone,copy之类的方法要怎么实现
23、找出两个串的最长公共子串
后面的问我觉得HTTPS对http做了哪一些优化,webView和js通讯,我怎么实现一个协议去做 MKWebView对UIWebView都做了哪些优化
100T数据找出前100个最小的数。(感觉这个问题也可能会问到)