面试总结

最近去面了几家,发现问的问题其实都大同小异,主要问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个最小的数。(感觉这个问题也可能会问到)

原文地址:https://www.cnblogs.com/wudan7/p/7928247.html