2019年三四月iOS面试总结

iOS基础部分

1. 多线程
  • iOS多线程的方案
  • GCD的具体应用(分组,栅栏等功能的使用,主线程全局线程和创建线程之间的区别)
  • GCD的底层实现原理
  • NSThread的实现原理
2. 锁
  • iOS中锁的种类
  • 使用锁来实现一个单例
  • 实现一个读写锁
  • 在iOS中锁的具体应用
4. 属性关键字
  • iOS属性的关键字有哪些
  • strong和retain区别
  • weak和assign相同点和不同点
  • copy关键字的使用
  • atomic是否真的能保证线程安全,为什么
  • NSArray和NSMutableArray分别用什么来修饰
  • NSString为什么用Copy来修饰,为什么
5. iOS中常用的设计模式
  • MVC和MVVM的区别
  • 用MVVM来实现一个登陆注册
  • 如何来实现一个单例(使用锁来实现一个单例)
  • KVO的底层实现原理
  • 工厂模式
6. 继承, 分类,类扩展
  • 继承分类扩展有什么相同点和不同点
  • 在什么情况下你会选择继承,什么情况下选择分类
7. iOS组件化
8. iOS跨平台编程(RN技术)
9. 原生和H5交互的技术
9. iOS点击事件的整个传递过程
10. 如何保护APP中的隐私信息
11. 用过swift的吗,在项目中有没有实际使用过
12. AutoreleasePool的底层实现原理
13. RunTime的底层实现,你用runtime做过什么东西
14. Runloop是个什么东西,以及实现原理和机制
15. iOS中Block的用法和实现原理
16. Hacker部分
  • 有了解过马甲包相关的内容吗
  • 审核4.3如何解决
  • 如何实现AB面
  • 一个30M体量的APP,让你做重命名需要多久

网络部分内容

  • http和https的区别
  • https的加密方式 (对称和非对称加密)
  • TCP的三次握手和四次挥手
  • post和get的区别

数据结构部分

  • 了解过哪些数据结构和算法
  • 数组与链表的优缺点
  • 单链表和双链表的区别
  • 判断链表中是否有环
  • 如何在链表中插入一个元素
  • 二叉树遍历和排序
  • KMP算法的实现
  • 哈希表的底层实现和应用
  • 求最长相同串
  • 了解红黑树的实现

其他部分

  • 自己的技术站是什么,有了解过H5和安卓的开发吗,对数据库和服务器有没有做过了解
  • 平时会看那些技术网站,自己会写博客吗,有没有对开源库做过贡献,会看底层代码吗
  • 个人未来两三年的职业规划是怎么样的
  • 对公司加班你怎么看
  • 遇到自己解决不了的问题是,你会怎么去做
  • 为什么从上家公司离职
  • 对加班怎么看
  • 公司每天都会加班到十点以后,你可以吗
  • 未来会住在哪里
  • 你有女朋友吗
  • 简单的对自己做一个评价
  • 平时除了工作还回去做些什么

待补充......

你可能感兴趣的:(2019年三四月iOS面试总结)