iOS面试高频题

计算机基础

主要考察大学的计算机网络、操作系统、计算机组成原理的一些基础题目,另外还有一个大类数据结构与算法则更侧重编程能力。

面试官通常会问你对某个领域是否了解,然后由浅到深地问,还会让你举例。

1. TCP/IP模型。

2. 三次握手、四次挥手的过程、原理。

4. 解释一下你对多线程的认识。

5. 谈一下你对锁的了解。

6. 你了解哪些设计模式?谈一下应用场景。

6. 怎么优化性能,举一下例子。

7. 怎么做单元测试。

8. 谈一下你认识的一些架构,如MVC、MVVM、MVP等。

9. 谈一下大端、小端模式。

iOS基础

1. iOS有哪些多线程工具类。

2. 谈谈你对Webkit的认识。

3. iOS有哪些锁。

4. 怎么实现暗黑模式。

5. 怎么实现阿拉伯适配?

6. 怎么对iOS做单元测试、自动化测试。

7. 如何优化应用性能。

8. 动态库、静态库的区别。

9. 谈谈Runtime。

10. 谈谈Runloop。

11. Block实现原理。

12. iOS有哪些设计模式。

13. 解释一下Delegate、Block、Notification及使用场景。

14. Category/Extension的实现原理。

15. 解释iOS内存管理机制ARC模式,有哪些情景造成引用循环。

16. 谈一下你对Instrument的了解。

17. 你会用LLDB哪些命令。

算法题

主要考Leetcode上面的题目或者一些变形题,主要有以下几大类。

线性表

1. 对数组/链表进行排序/搜索/插入/删除。

2. 实现栈/队列,利用栈实现深度优先搜索、队列实现广度优先搜索。

3. 对二维数组进行深度优先/广度优先搜索,如岛屿问题、寻找两点最短路径。

二叉树

1. 二叉树的先序、中序、后序、层序遍历问题,其中先序、中序、后序属于深度优先搜索,层序遍历属于广度优先搜索。

2. 二叉树的翻转。

3. 排序二叉树的性质(左子节点比父节点小、右子节点比父节点大。中序遍历是对排序二叉树从小到大的遍历。)

图论

这属于高阶难题,一般做iOS开发用不上。可能考算法工程师或者进入一流企业才会考吧。

1. 无向图和有向图的临接表实现和矩阵实现。

2. 无向图和有向图的深度优先搜索和广度优先搜索。

3. 判断图是否有环。

4. 对有向图进行逆转。

5. 拓扑排序。

6. 计算无向图和有向图的连通分量。

7. 带权重的图,最小生成树,Kruskal算法,Prim算法。

8. 最短路径问题,Dijkstra算法。





 

你可能感兴趣的:(iOS面试高频题)