腾讯面试官真的是非常非常好,以下是我一面的经验,一面过了,二面我放弃了。
自我介绍
为什么说 oc 是动态运行时语言?你是怎么理解的?
weak 属性内存管理?
block是什么?block 截获变量特性怎么理解?使用 block 的时候需要注意什么?__block 修饰的局部变量为什么就能在 block 内部被截获?堆栈 block 的区别?
crash 收集工具的设计?
启动优化怎么做的?
性能检测怎么做?
KVO 的实现原理是什么?如何手动 KVO?
KVC 的实现原理是什么?
tableview 的优化?
UIView 和 CALayer 的关系?
响应链是什么?
消息发送以及消息转发的流程是什么样?
atomic 修饰的对象就一定是线程安全的么?为什么?说明原因,举例说明
什么是线程安全?
说一下你对 MVVM 和 MVC 的理解?
其他的不记得了?
最后一道算法题,一个乱序数组中有一个数字超过一半,找出这个数字?分析时间空间复杂度?提出了两种解题思路,然后面试官友好的提出了另外几种解决思路,然后让分析时间空间复杂度