iOS高薪求职面试题技巧分享

序言

iOS目前形势,资本寒冬,裁员风波。今年,找工作人可能会更深刻地体会到今年的就业形势不容乐观,要求越发高了,由于接触面试这块比较多,所以自然也是做了这方面的准备,因此这篇文章主要是做一个面试分析。话不多说,接下来,我用思维模板,一一来展示。

一、面试题技术点

1、进阶技术讲解

  • 架构模式
    1.面向协议编程
    2.面向接口编程(MVP):MVC跟MVP的区别以及使用的优缺点是什么?
    3.MVC & MVVM
    4.函数式编程

  • 设计模式
    1.23中常见的设计模式:高频、中频、低频
    2.iOS中的设计模式
    3.MVC经典的架构中说说有哪些常用的设计模式?

  • 大工程项目管理
    1.工程模块管理
    2.组件化:组件间的通讯, 是通过什么方式来做的, 请详细的解释一下.

  • 性能优化

  • 场景解决方案
    1.高并发网络场景
    2.UI优化处理
    3.大数据同步

  • 第三方框架部分
    1.YYKit
    2.AFNetworking
    3.SDWebImage常见面试题细解:
    ①SDWebImage是怎么来清理缓存的?
    ②SDWebImage是怎么处理接收的内存警告的?
    ③clear和clean有什么样的区别?
    ④SDWebImage中怎么计算图片的成本大小?

2、底层面试讲解

  • OC语言部分
    1、属性修饰符:
    ① 什么情况使用 weak 关键字,相比 assign 有什么不同?
    ② @property 的本质是什么?ivar、getter、setter 是如何生成并添加到这个类中的?
    2、对象消息机制
    3、Block
    ①使用block时什么情况会发生引用循环,如何解决?
    4、KVO & KVC
    ①如何手动触发一个value的KVO?
    ②KVC的keyPath中的集合运算符如何使用?
    5、其他
    ①objc使用什么机制管理对象内存?
    ②BAD_ACCESS在什么情况下出现?
    ③ lldb(gdb)常用的调试命令?
    ④说一说OC中字典的实现原理?
    ⑤iOS中的消息机制和消息转发机制的区别?
    ⑥怎么解决iOS打包成功之后,运行在iPhone上会闪退,黑屏的问题?

  • Runtime System
    1、_objc_msgForward 函数是做什么的,直接调用它将会发生什么?

  • 多线程
    1、runloop和线程有什么关系?
    2、runloop的mode作用是什么?
    3、GCD
    ①GCD的队列(dispatch_queue_t)分哪两种类型?
    ② 如何用GCD同步若干个异步调用?(如根据若干个url异步加载多张图片,然后在都下载完成后合成一张整图)
    ③dispatch_barrier_async的作用是什么?
    ④苹果为什么要废弃dispatch_get_current_queue?
    4、NSOperation
    5、Runloop
    ①猜想runloop内部是如何实现的?

二、简历面试技巧和数据结构特训

1、简历制作技巧与分析

  • 个人信息
  • 技能方向
  • 项目经验
  • 工作经历
  • 教育背景与培训经验
  • 如何筛选技术,制作符合工作年限的简历?
  • 如何突出简历中重点
  • 如何让你简历过不不忘
  • 拒绝模板式简历输出,做一个有技术的高薪人才.
  • 如何展示项目,是最合适的方法
  • 博客账号,运营维护技巧
  • 容易忽略的简历细节,导致面试无缘
  • 简历案例分析
    ①失败简历分析
    ②优秀简历分析

2、面试技巧分析

  • 如何从开发人员角度,自我介绍
  • 项目技术与开发过程介绍技术
  • 如何主导面试过程
  • 面试过程不可做的十大事情
  • 怎样回答技术才是精彩的
  • 如何有层次解释技术问题
  • 如何表现自我学习能力与解决问题能力
  • 如何有效谈薪资与福利待遇
  • 面试过程中,如何预判面试是否成功
  • 换工作,如何选择一个有发展的工作
  • 如何友好委婉拒绝工作机会
  • 遇到自己不会,如何委婉绕过问题
  • 到岗时间的背后细节详解
  • 准备面试,该从哪些方面准备
  • 大型公司招聘内部不为人知的要求

3、iOS开发者晋升

  • 技术瓶颈期,如何突破?
  • iOS开发如何选择晋升空间?
  • 成为高级软件开发工程师,背后都如何学习的?

4、数据结构

  • 线性表
    1、线性表顺序存储
    2、创建线性表
    ①开辟堆区(malloc函数)
    ②结构体指针的运用
    ③利用lldb查看内存空间
    3、销毁线性表
    ①free和Release妙用
    4、插入元素
    5、删除元素
    ①简单算法
    ②算法优化
    6、算法时间复杂度估算
    7、NSArray内存中的变化
    8、NSMutableArray
    ①扩容实现原理
    ②内存中的变化
    ③capacity的正确运用

  • 编译器优化
    1、Optimization Level
    2、Debug&&Release
    3、反汇编查看优化结果

面试题技巧思维导图

结语:

以上的总结先告一段落了;
最后,面试还需要保持一个平稳的心态:“面试时尽力就好,遇到自己不会的问题也是正常情况”。如果面试者顺利答对了所有问题,难免会让面试官感到一丝尴尬,面试者也有可能会产生一些别的情绪。所以,我们要做的只是把自己的能力展示给面试官,做到不骄不躁。


另外附上一份对应上述的全套面试技巧视频分享,免费获取,要的可加iOS高级技术群:624212887,获取全套面试技巧视频

如图所示:


面试技术点分享全集

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 3,628评论 0 12
  • Ping++SDK:一次申请开通多个支付渠道,一次接入所有平台和支付方式 需要传递三个参数:api key应用id...
    BURIBURI_ZAEMON阅读 1,971评论 0 11
  • 1. 父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 1.1 深拷贝同浅拷贝...
    Yeso阅读 527评论 0 13
  • 声明:面试是对自我审视的一种过程,面试题和iOS程序员本身技术水平没有对等关联,无论你能否全部答出,都不要对自己产...
    _啊祥同学阅读 252评论 1 2
  • 华山御温泉度假村——国家AAAA级旅游景区,距历史名城西安仅90公里,占地2000余亩,集兵器游乐、温泉养生、休闲...
    5ceca93c1c18阅读 787评论 0 0