iOS 2017年面试总结

各类缘由之下,最近两周一直处于面试状态,这里整理了最近出镜率略高的面试题。以及我的的一些面试心得。面试

开始面试以前一直听你们在说iOS行业不景气、面试机会少、待遇差等等等等各类抱怨。听完后确实担心过一段时间,怕辞职以后找不到工做,毕竟个人学历是个硬伤。你们学历背景都比我强,我估计会更很差找工做了。算法

然而实际过程还算顺利。正式离职以前陆陆续续投递过几回简历,可是反向平平。17年12月8日(周五)办理离职手续,周一正式开始在各大招聘平台(主要是BOSS、拉钩)投递简历。周二晚上中止投递简历,由于天天两家面试的安排已经安排到周五。周三的面试结束后,很幸运的拿到三家Offer。为赶在15号以前入职,将周四周五四家公司推了两家(对不起贵司),将剩下两家合并到周四面试,很幸运的又拿到一家Offer,也就是我将要入职公司的Offer。编程

总投递简历时间两周,面试11家公司,拿到4家Offer(原本应该是5家,有一家过了四面,最后一面由于学历问题被pass了,必须吐槽一下)。期间没有安排BAT级别的公司。为了此次面试,作了不少的准备,在这里总结一下。缓存

  1. 完善简历(用时两天,如下内容无优先级区分)
    • 简历细节
    • 简历合理性
    • 简历模块分布
    • 简历干净、整洁程度
    • 模块内容
    • 模块优先级
    • 模块内容优先级
    • 模块内容可阅读性
    • 简历亮点(我以为这个很重要)

我用了两天时间完善简历。期间在简书、知乎、百度等各类地方找简历模板、模范简历。知乎上有各类资深HR回答的“一份优秀简历须要注意的内容”。找工做第一关就是HR,因此我以为简历是最重要的,须要好好准备一下。安全

  1. 技术储备(如下内容无优先级区分)
    • 刷历年面试题
    • 刷新知识新内容
    • 刷基础知识书籍、文档
    • 刷各位大神博客
    • 刷各大iOS论坛

技术储备这部分我以为是最辛苦的部分,脑海里天天要被一大堆新技术旧技术各类冲击,精神一直处于紧绷状态。晚上睡觉都是各类面试题、技术原理、技术实现细节等等。 技术储备我以为不必定须要把全部内容都背到脑子里,只要在脑海里造成一个大致的逻辑就能够。当面试官问到的时候把知道的说出来就好(切记不要猜)。 讲真直播方面的内容我到如今都是只知其一;不知其二的,之前工做一直没有涉及到直播方面。并且直播相关知识实在是太多了!性能优化

  1. 面试准备(如下内容无优先级区分)
    • 公司简介
    • 公司项目
    • 公司创立时间
    • 公司发展历程
    • 公司处于什么阶段

面试准备是很重要的,这部分的准备决定了面试时候的主导权在谁手里! 每一个公司都有对应的发展历程,不一样的历程决定了技术架构的不一样,不一样的技术架构决定了面试官的问题的技术深度。你去和作直播公司的面试官聊直播就是找虐(若是你想入职!你要记住即便面试官错了!那也是对的!)。这边有个小技巧,若是你的回答和面试官给你解释的内容不同,并且你也不以为他说的是对的,请记住!少说一点!不要长篇大论的给面试官解释,在他解释的时候切其中的某个知识点一下就行。总之就是请不要把你的位置放到面试官之上,哪怕你俩实际上是对等的。 若是在你查看公司项目的时候发现,项目的知识点恰好是你彻底不了解的,请直接说我不会!不要给面试官在你面前秀知识的机会!否则他会面完你转身和HR说:“这我的啊,呵呵,就那样吧”! 最最重要的一点!!!去面试以前千万记得在拉钩上看一下公司的面试评论!!!例如:XX善康XXXX公司,我要点你!我要曝光你!太生气了!我用了一个半小时跑过去,面试我5分钟。并且面试官嘴里竟然会说出:“就这些?”,“还有吗?”,“完了吧?”等引人深思的句子。全程玩手机什么的我就不说了,嘁,为了它我推掉一个BAT的公司呢~bash

如下为出镜率较高的面试题,暂时列出一个大概,后续有时间会补上衍生问题和答案。微信

原理类

  1. 响应者机制
  2. 消息传递机制
  3. 介绍一下catagory
  4. block的本质是什么
  5. JSON解析快慢缘由
  6. __bridge 是什么意思
  7. assign和weak的区别
  8. runtime是如何工做的
  9. runloop和线程的关系
  10. 长链接在TCP的哪一层
  11. 使用drawRect有什么影响
  12. nonatomic和atomic的区别
  13. oc中new和alloc/init的区别
  14. nonatomic和atomic的区别
  15. NSDictionary的本质是什么
  16. UIView和CALayer是啥关系
  17. ARC和MRC的区别,ARC的实现
  18. unrecognized selector是如何出现的
  19. JSON和NSArray/NSDictionary和互转
  20. 简述UIButton和UITableView的继承关系
  21. @dynamic和@synthesize关键字是用来干什么的
  22. 堆栈的区别、平常的开发中哪些地方会涉及到堆栈
  23. presentView 的释放时机 rootVC切换的时候释放吗
  24. __strong和__weak修饰词的做用是什么__autoreleasing修饰词是干什么的
  25. __weak 所属的hash表里 存的键值都是什么,被修饰的属性会在何时释放
  26. 可否向编译后获得的类中增长实例变量?可否向运行时建立的类中添加实例变量?为何?

实战类

  1. 屏幕适配
  2. 实现一个单例
  3. 实现retain和copy
  4. 清空NSArray中的元素
  5. 举几个形成死锁的例子
  6. 线程通信和线程安全问题
  7. 数据持久化的几种方案及优缺点
  8. 微信支付流程、支付宝支付流程
  9. 循环引用 何时用到strongSelf 举例
  10. 讲讲你用Instrument优化动画性能的经历吧
  11. 实现一个六边形Button,要求边框以外区域不可点
  12. storyBoard名为Personal中多个页面,初始化其中名为MyCtrl的页面如何实现

架构类

  1. 介绍一下RN
  2. 介绍一下组件化
  3. 介绍一下响应式编程
  4. 作过哪些方面的性能优化
  5. 作过哪些方面的内存优化
  6. 如何设计一个AFNetWoring
  7. 如何考虑一个APP框架的搭建
  8. APP我的信息安全性如何保证
  9. MVC/MVVM/MVP区别及优缺点
  10. 如何设计一个存有公司内部员工信息的APP(假设公司有10万以上员工)
  11. 如何看待storyBoard、xib和纯代码开发,说一下优缺点,你负责项目开发会采用哪一种形式

音视频类

  1. 流媒体
  2. 视频播放
  3. 边下边播
  4. 直播相关知识

即时通信类

  1. socket、XMPP是如何实现IM的,具体流程
  2. JSON串的储存模式是什么
  3. XML和JSON的优缺点
  4. 除了socket和XMPP还有其余实现IM的方式吗

JS与原生交互类

  1. JS交互使用过哪一种方式
  2. WKWebImage和UIWebImage的却别及优缺点
  3. AFNetWorking和SDWebImage实现原理,SDWebImage核心缓存理念

算法类

  1. 随便写一个排序算法
  2. 写一个取10000之内质数算法
  3. 实现找到两个向教练表的倒数第n个节点(能够用伪代码)
  4. 字符串按照单词反转,例“Objective-C Hello Word!”,结果“word! Hello Objective-C”

功能类

  1. 蓝牙有几种通信协议
  2. 说一下蓝牙的实现

其余类

  1. 职业规划
  2. 展现项目,介绍项目难点,亮点,项目哪些模块是你负责的
  3. 工做期间遇到有意思的问题或者比较难的问题
  4. 工做期间有没有让你以为颇有成就感的事情
  5. 作过的最有技术含量的东西
  6. 有没有作过看起来特别炫的东西

神经病类

这个问题不是我遇到的,是我一个朋友去面试被问到,欢迎各路大神讨论。架构

  1. 你有朋友吗?
  2. 若是你和你朋友一块儿去犯罪,很不幸你被抓住了,你会把你的朋友供出来吗?

代码类

void tet1(){
	int a = 10;
	void (^block) = ^{
		NSLog(@“a is %d”, a);
	}
	a = 20;
	block();
}
输出结果:
复制代码
main() {
	int a[5] = {1,2,3,4,5};
	int *ptr = (int *)(&a+1);
	printf(“%d, %d”,*(a+1),*(ptr+1));
}
输出结果:
复制代码
NSLog(@"1");
dispatch_sync(dispatch_get_main_queue(), ^{
    NSLog(@"2");
});
NSLog(@"3");
输出顺序:
复制代码

结束,预祝各位找工做顺序~



有志者、事竟成,破釜沉舟,百二秦关终属楚;框架

苦心人、天不负,卧薪尝胆,三千越甲可吞吴.

相关文章
相关标签/搜索