写此文的目的
记得去年这个时候自己就在面试,今年面试自己总结了很多。我按照被问的次数罗列了一些知识点,整理了下自己总结的东西。(因为知道自己能力有限,没有过深的去解释每个点,不过基本谷歌一下,所有的内容基本可以查到)
罗列的前13都是面试命中率较高的知识点
背景
焦虑的不行要涨薪啊。
总共面试了6家,分别是豆瓣、好未来、平安、印象笔记、360、斗米。谈到offer的有、到2面的也有,在一面就被刷的有3家。
豆瓣、360、斗米3家是有稍微完整的知识点记录,其他的或因为拿到offer、或因为当时面试状态不佳,都是靠之后回忆了一部分。
感受以及总结
iOS开发人员需求还是有的,只是要求高了很多。
对于知识点的掌握不再止于了解,精确度、深度的要求都有提升。
自我介绍、项目亮点、项目难点一定要事先准备好,有深度,不卡壳。(可以看看面试之道第一章),算法、数据结构的考量因为我面的不是太大的厂,面的不深,但是会有。
好未来运行时的东西偏多、 印象笔记偏广、平安偏组件化(自己感觉)
知识点总结(2次以上13个。14后之后的都是被问到一次也可以看看)
- tableview滑动流畅的优化 被问6次这个相信大家肯定问到过,推荐ibireme的blog.ibireme.com/2015/11/12/…
kvo kvc 被问5次
这个的会问kvc的内部实现, kvo的原理- 消息转发 被问5次基本消息转发过程中都经过了哪些步骤说一说,每一步是干什么,以及能做什么。会结合Runtime添加方法什么的聊一聊
- gcd 被问5次推荐《Effective Objective-C》 2.0第6章 信号量 group 栅栏 3个关键词如何使用
- 事件响应 被问5次响应链和事件传递、怎么寻找最合适的view、 一个view的frame超出父view会怎样
- 循环引用的几种,成员变量怎么解环 被问4次可能会延伸到weak的实现 weak-strong dance 为啥还要strong一下成员变量产生循环引用该怎么解
- property相关 被问4次Weak strong copy 什么时候用啥,混用会有什么后果。为啥string用copyweak的底层实现
- Runtime 被问4次啥是运行时 能干哈 objc_messageSend的底层实现打印项目中所有类,类的方法method swizzling
- 代理,block,通知的差别 被问3次可能会手写代理 可能在代理里串下为什么用weak修饰block的本质 循环引用及其解决通知的原理 自己实现一个通知的思路
- 组件化 被问3次
组件间调用及通讯、也会串设计模式mvc、mvvm
- runloop和线程的关系 被问3次这个也没啥可说的,有下面一段代码被问到dispatch_queue_t queue = dispatch_get_global_queue(0, 0);dispatch_async(queue, ^{NSLog(@"1");[self performSelector:self withObject:@selector(test) afterDelay:.0];NSLog(@"3");});- (void)test{NSLog(@"2");}推荐阅读链接:https://www.jianshu.com/p/5a4ba3c16… 第九点
- self super 调用方法的步骤 被问2次
- autoreleasepool的底层实现,什么时候被释放 被问2次
- 判断链表重复节点 被问2次
- 如何隐藏一个view 有几钟方法这个有点笼统,具体也没啥好的答案,大家可以留言讨论下
- iOS推送流程(APNS)
- ismemberof isclassof的区别
- static全局和局部的差别
- uivew继承自谁,CALayer与uiview的关系
- .isa指针
- atmtic是线程安全嘛,为什么
- 不通过中间变量交换2个变量
- 25匹马 5个赛道 赛多少次可以获得第三名
- 分层架构在计算机中有哪些用到
- Http协议三次握手过程
推荐阅读:
- https://juejin.cn/user/2893570334019655 .
- https://www.jianshu.com/p/5a4ba3c165b9
- 《iOS面试指南》
- 《Effective Objective-C 2.0》