这份清单为2022年准备,iOS技术点+面试题分类

前言

喜欢的可以收藏,大家一起努力。

以下是小编收集总结的iOS技术点+面试题分类;看看你都会了吗?希望自己能有目标有计划地准备面试,后面我会逐个复习一下相应的内容。

  • 更多技术题合集:

iOS技术题大全(上)

iOS技术题大全(中)

iOS技术题大全(下)

iOS面试常问:

常问例题:

    1. 如何保证线程安全?死锁是如何产生的?
    1. 线程之间是如何共享资源的?
    1. 从设计模式的角度分析Delegate、Notification、KVO的区别。
    1. NSNotification实现逻辑,子线程中给主线程发送通知,主线程是否会处理通知.
    1. 如何令自己所写的对象具有拷贝功能?
    1. 自动释放池在mrc和arc区别
    1. 进程之间如何共享资源?
    1. 谈谈对于block理解,mrc和arc下有什么区别。
    1. TCP握手为什么是三次?TCP挥手为啥是四次呢?
    1. Http 和 Https 的区别?Https为什么更加安全?
    1. 解释一下 三次握手 和 四次挥手?
    1. socket编程里面,select、poll、epoll的区别和特点?
    1. client和server之间TCP通信,双方使用到的socket函数以及过程?
    1. TLS的加密过程?
    1. TLS握手时的随机数有什么作用?
    1. 链表和数组的区别是什么?插入和查询的时间复杂度分别是多少?
    1. Category(类别)、 Extension(扩展)和继承的区别。
    1. 为什么代理要用weak?代理的delegate和dataSource有什么区别?block和代理的区别?
    1. id和NSObject*的区别。
    1. 如何令自己所写的对象具有拷贝功能?
    1. 使用系统的某些block api(如UIView的block版本写动画时),是否也考虑引用循环问题?
    1. static有什么作用?
    1. Swift 下的如何使用 KVC?
    1. Swift有哪些模式匹配?
    1. objc在向一个对象发送消息时,发生了什么?
    1. 静态库的原理是什么?你有没有自己写过静态编译库,遇到了哪些问题?
    1. 不手动指定autoreleasepool的前提下,一个autorealese对象在什么时刻释放?(比如在一个vc的viewDidLoad中创建)

难一点的

  • 设计一个progress bar解决方案,追问到 Core Graphic、CGPath、maskLayer。

  • 设计一个popup view被追问到 keyWindow、UIWindow的layer、UIView hierarchy。

  • 从设计模式的角度分析Delegate、Notification、KVO的区别。被追问到自己写的library和开源的项目中用到哪些设计模式,为什么使用,有哪些好处和坏处,现在能否改进。

  • 算是问题3的追问,设计一个方案来检测KVO的同步异步问题。willChange和 didChange的不同点,然后被追问到有没有其他地方也有类似情况,被追问到Core Data 中falut object。

  • Multithreading,什么时候采用Multithreading方案,以及理由。追问到系统还有哪些在后台运行的thread,被追问到view life cycle、iOS6之后的不同以及内存管理。

  • Multithreading中常常遇到的问题,追问到死锁,优先级翻转,线程池等。

  • runloop是来做什么的?runloop和线程有什么关系?主线程默认开启了runloop么?子线程呢?

  • 不手动指定autoreleasepool的前提下,一个autorealese对象在什么时刻释放?(比如在一个vc的viewDidLoad中创建

  • 不手动指定autoreleasepool的前提下,一个autorealese对象在什么时刻释放?(比如在一个vc的viewDidLoad中创建)

喜欢的可以收藏,大家一起努力。

你可能感兴趣的:(这份清单为2022年准备,iOS技术点+面试题分类)