iOS面试总结

作者: 阿狸小朋友 | 来源:发表于2020-09-01 23:03 被阅读0次

    居理新房面试(2020-9-4)

    1.子线程内执行A,B,C,D,E五个任务,B依赖于A的完成,E依赖于C,D的完成,B和E都完成后,在主线程打印“任务全部完成”,如何高效执行?
    2.中根序列: BDCEAFHG, 后根序列: EDCBHGFA, 求先根序列。
    3.sdwebimage如何进行多线程下载的
    4.autoreleasepoolpage的数据结构

    1. jenkins打包
      6.分类中添加的关联对象保存在哪里,释放时机
      7.定时器循环引用的解决办法
      8.字符串为什么要用copy修饰

    微博面试(2020-9-4)

    1、微博每天有10亿条记录,每条记录10-100K。现在你有一台内存为4G的电脑,计算播放最多的一条微博
    2、在一个数组中找出前4个最大的数?请设计一个最优的算法。
    3.atomic的实现机制
    4.(category)(extension)的区别
    5.如何用GCD和SDWebImage的SDWebImageDownloader 的

     - (nullable SDWebImageDownloadToken *)downloadImageWithURL:(nullable NSURL *)url
                                                        options:(SDWebImageDownloaderOptions)options
                                                       progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
                                                      completed:(nullable SDWebImageDownloaderCompletedBlock)completedBlock;
                                                     
    在异步非线程中,实现完成串行下载组图片文件。即一个完成再才开始下载第二个。
    SDWebImageDownloaderCompletedBlock和SDWebImageDownloaderOptions 参数无需关心
    

    6.如何监听卡顿现象(runloop的observe)
    7.如何高效的绘制圆角阴影等
    8.gcd如何并发限制(信号量)

    美术宝面试(2020-9-3)

    1.手写安全单例
    2.手写链表反转
    3.realm的效率问题
    4.常用的锁,什么情况NSLock会出现死锁
    5.APP的架构问题
    6.在main中向主队列异步添加任务 会有什么问题吗

    有咖互动面试(2020-9-2)

    1.@"1"这种字符串存储在地方(考察Tagged Pointer)
    2.如何实现copy协议,对于数据模型该怎么实现深拷贝功能
    3.如何通过关联对象增加一个weak类型的delegate
    4.weak的存储原理,如何实现的弱引用
    5.项目中遇到的循环引用如何解决
    6.如何实现抖音那种,当cell滚动某个位置的时候开始播放
    7.autoreleasepool实现原理
    8.copy和strong区别,分别在什么情况会使用

    融云面试(2020-9-1)

    1. git命令re-base的作用
      2.RSA,md5,base64等加密算法的区别,以及使用场景
      3.httphttps的区别,tcp三次握手的流程,http协议,http1.0http2.0的区别,header中常用的字段,https如何实现自治证书(http的相关问题非常多)
      4.如何优化本地数据库查询效率
      5.线程间通信,锁机制在操作系统级的实现
      6.启动app,收到大量离线IM消息,如何优化这种场景
      7.聊天页面大量的cell(音频,图片,文字等)布局,如何优化
      8.项目中都依赖了某第三方库 导致版本冲突问题,如何解决(面试官说了个符号化)
      9.自动化打包
      10.MVVM和MVC,列举常见的设计模式

    跟谁学面试(2020-8-28)

    1.组件化的实现过程
    2.路由框架的实现原理
    3.block捕获变量,自动变量,静态变量,数组
    4.父类,子类,分类中的load方法的执行顺序,自定义方法的执行顺序
    5.实现链表的反转(不带头节点的链表)
    6.方法交换,在子类中进行方法交换(交换了父类的方法),那父类进行调用时会有什么影响,如何解决此类问题
    7.消息调用的过程
    8.事件响应链
    9.自动化打包

    题目有一些出自《招聘一个靠谱的iOS》

    相关文章

      网友评论

        本文标题:iOS面试总结

        本文链接:https://www.haomeiwen.com/subject/taxbsktx.html