简单面试总结

iOS面试主要方面

  1. runtime
    1.1 runtime能做什么。
    1.2 runtime包含的内容。
    1.3 catagory作用以及和extention区别。
    1.4 load 和 initiallize的区别。
    1.5 消息发送过程。
    1.6 OC实现多继承的方式。

  2. iOS如果管理内存的。
    2.1 引用计数器怎么算的。
    2.2 strong、weak、assign、atomic等区别。
    2.3 实例对象释放时机。
    2.4 autoreleasepool 原理。
    2.5 循环引用问题。(NSTimer,block等)

  3. runloop
    3.1 runloop概念。
    3.2 runloop原理。
    3.3 runloop的使用。
    3.4 runloop和runtime以及autoreleasepool之间的关系。包括和线程之间的关系。

  4. iOS的设计模式
    4.1 单例,注意dispatch_once和@synchronized区别和联系。为什么使用dispatch_once更好一些,使用dispatch_once会有哪些问题。
    4.2 通知,实现原理。
    4.3 KVC,实现原理。
    4.4 KVO,实现原理。

  5. 多线程
    5.1 GCD主要方法。
    5.2 GCD的信号通知方式有几种。(信号量、group、barrier)
    5.3 线程死锁问题。
    可深可浅

  6. 响应者链
    6.1 一个按钮的点击事件怎么实现的。
    6.2 手势冲突怎么解决的。
    6.3 UI覆盖情况下各种不同情况怎么相应的。
    6.4 响应和runloop关系。
    6.5 window覆盖以及优先级问题。

  7. 算法
    7.1 排序算法尤其是快排、堆排序、插入排序。
    7.2 二叉树层次遍历和深度遍历。
    7.3 单链表反转以及删除。
    7.4 哈希表的应用。比如,如何快速的查找到两个view的第一个公共父view。

  8. 网络
    8.1TCP三次握手,四次挥手。
    8.2 https 握手过程简单描述。
    8.3 为什么https是安全的。

你可能感兴趣的:(简单面试总结)