关于面试题,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎大家指教。主要记录一下准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的同学吧。
一面
最近公共父节点(两个节点,都可能为null,都可能不在树上。)
反转链表(常规题)
HTTP了解吗?HTTP2.0介绍下
iOS9-13,每个版本讲一个特性
怎么实现多个任务执行完后,再统一处理(应该是同步阻塞、栅栏函数、调度组)
不让用SDWebImage,如何实现类似逻辑 (自己设计图片请求和缓存,简单讲了SDWebImage的思路)
每个TableViewCell都有一个UIImageView要加载图片,如果没有缓存,有五个Cell请求一个url,同时发请求肯定是不实际的,如何处理?
微信TableView滑动的时候,动图是不动的,为什么?(Runloop的Mode决定的)
有了解过WebSocket吗?
二面
如何不试用递归,打印所有一个UIView所有的subviews
设计一个图片缓存系统,并代码实现
介绍基于LLVM/Clang的静态分析
七层协议栈
HTTP是哪一层的协议
HTTP常见的返回码有哪些?
HTTP除了GET、POST还有哪些?(UPDATE、DELETE、HEAD)
HTTPS介绍一下
HTTPS能防止中间人攻击吗?
TCP和UDP的区别
线程和进程的区别
线程之间如何进行通讯
不使用gcd,如何保证线程安全?
iOS有哪些多线程方式?(NSOperation、NSThread、GCD)
同步和异步有什么区别?
串行队列和并行队列有什么区别?
队列和线程的关系
死锁是怎么产生的?
三面
合并排序链表
HTTPS用的对称加密还是非对称加密?
TCP的慢启动,快恢复介绍下
客户端发送网络请求,到拿到响应的整个过程 (类似打开一个网页的过程)
接上题,如果DNS解析的时候,某个ISP服务器没有了,这时候逻辑是怎样的?
介绍了下字典转模型的设计+夜间模式的设计
为什么不用成熟的字典转模型的三方?有了解过吗?
夜间模式有什么缺点,能怎么优化?
锁有哪些?
数据存储,怎么存的(FMDB)
线程安全错误是怎么出现的?
更多:iOS面试题合集
如下图所示: