iOS个人面经总结

好好考虑一下这几个问题:

  • 你做过的最有技术难点的事是什么(技术上的)
  • 你看过哪些开源框架,里面的关键点是什么,如何阅读的
  • 做过哪些优化,比如性能优化,问题是啥,如果分析定位,怎么做的,结果如何。个人认为可以分为:崩溃治理、内存优化、cpu优化、启动优化、卡顿优化(耗时优化)、APM相关(fps、卡顿、cpu监控)

pdd

一(一轮游)
  • 聊项目 - 引出多线程相关问题,并发数 (感觉面试官不是iOS出身)
  • 写单例 - 聊锁
  • 算法,一亿个数, 取出80分位 (topK没写出来,需要做分片处理,只是讲了一下思路)
    换了一个部门(音视频业务好像是)一面
  • 项目-首帧
  • 介绍block(我傻傻的把我知道的block特效介绍了一遍,其实我应该通过一个案例来介绍,比如获取block签名
  • 算法-俩队列实现一个栈
    二面
  • 忘记问了啥
    三面
  • 聊项目

平安好医生

  • 聊项目
  • premain
  • +load耗时 怎么统计
  • 布局方式
  • mach-o
  • 多进程之间文件(PDF)传输,(没研究过,不知道)

小红书

一面
  • 手势链和响应链的优先级
  • 关联对象是否有缓存
  • 算法(俩数之和)

    二面

  • 代码题 - 给NSObject的category加一个dealloc block,保证add后,这个类释放的时候会执行这个block
  • 算法题 - 一个数组能否平分成3份,每一份相加后相等
    三面
  • 聊项目,会聊的比较深,具体到某一个问题深入问下去
  • 算法, 一个add、一个查询,(很简单,但我跑偏了,答的不近人意,(有序数组插入,应该是O(logN)二分查找后add, query,longN,二分查找))

声网

(5轮)

  • nsthread里是否需要加autoreleasepool,
  • tls加密
  • 链表翻转

口碑

  • 设计模式-什么是依赖倒置(没答上来)
  • 看过哪些开源框架(回答的并不好)
  • FMDB里的线程安全 (没答上来)很久没看了
  • oc基础
  • 都是基础,感觉没问啥
  • 算法:给出一个数组,按照一大一小来排列
  • 随便聊聊项目
  • 会问一些项目难点、技术难点之类的(这类问题最难回答,很有可能你的回答让人家觉得很简单,或是完全没听懂你在说什么,都不优好)
  • 聊项目
  • 聊规划,没咯

腾讯

  • 算法题 - 小偷偷钱
  • 算法题 - 传入一个n,生成一个1-n随机数组,并保证不重复(就是那啥)
  • 代码题 - mrc的一道题,10s后会不会crash

美团

一、二、三
  • 插件化、动态化、等等
  • 1-10的单链表、只有一个指针指向4,怎么删除4,不能重新遍历
  • oc如何管理c对象
  • arc、set/get的加载时机