坚持2022——疫情下学习四阶段iOS 面试题

前言

iOS开发者都想了解最新的面试情况,去做更充足的准备,下面看那些有你自己不会的东西,自己可以研究下,也可以收藏以免不时之需!

第一部分底层必问题:

  1. 什么情况使用weak关键字,相比assign有什么不同?
  2. 深拷贝与浅拷贝
  3. 简要说一下@autoreleasePool的数据结构?
  4. autoreleasePool 在何时被释放?
  5. 说一下iOS内存分区情况
  6. 如何解决循环引用?
  7. Runloop 和线程的关系?
  8. isa指针的理解,对象的isa指针指向哪里?
  9. Runtime 如何实现 weak 属性?
  10. load和initialize的区别
  11. ......

第二部分性能优化架构能力:

  1. 造成tableView卡顿的原因有哪些?
  2. 如何提升 tableview 的流畅度?
  3. APP启动时间应从哪些方面优化?
  4. 如何降低APP包的大小?
  5. 日常如何检查内存泄露?
  6. iOS有哪些常见的设计模式?
  7. 单例会有什么弊端?
  8. MVC、MVP、MVVM模式
  9. 编程中的六大设计原则?
  10. ......

第三部分多线程、网络能力:

  1. 什么是多线程?
  2. 多线程的优点和缺点?
  3. 多线程的 并行 和 并发 有什么区别?
  4. 如何保证线程安全?
  5. 多线程中的死锁?
  6. 线程之间是如何共享资源的?
  7. 进程之间如何共享资源?
  8. GCD执行原理?
  9. 网络的七层协议?
  10. Http 和 Https 的区别?Https为什么更加安全?
  11. 解释一下 三次握手 和 四次挥手?
  12. socket编程里面,select、poll、epoll的区别和特点?
  13. client和server之间TCP通信,双方使用到的socket函数以及过程?
  14. TLS的加密过程?
  15. TLS握手时的随机数有什么作用?
  16. ......

第四部分数据结构算法:

  1. 链表和数组的区别是什么?插入和查询的时间复杂度分别是多少?
  2. 哈希表是如何实现的?如何解决地址冲突?
  3. 排序题:冒泡排序,选择排序,插入排序,快速排序(二路,三路)能写出哪些?
  4. 链表题:如何检测链表中是否有环?如何删除链表中等于某个值的所有节点?
  5. 数组题:如何在有序数组中找出和等于给定值的两个元素?如何合并两个有序的数组之后保持有序?
  6. 二叉树题:如何反转二叉树?如何验证两个二叉树是完全相等的?
  7. 数据结构的存储一般常用的有几种?各有什么特点?
  8. 如何用栈实现队列?说一下思路。
  9. ......

总结整理的“iOS面试题技术点”分类,到这里就告一段落了!

资料下载:

"iOS简历模板+新iOS面试题+iOS提升视频"网址 :
docs.qq.com/doc/DVWlQam9Qd3B1cEF2

有什么需要讨论的地方欢迎大家指教。主要记录一下准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的同学吧

你可能感兴趣的:(坚持2022——疫情下学习四阶段iOS 面试题)