好好考虑一下这几个问题:
- 你做过的最有技术难点的事是什么(技术上的)
- 你看过哪些开源框架,里面的关键点是什么,如何阅读的
- 做过哪些优化,比如性能优化,问题是啥,如果分析定位,怎么做的,结果如何。个人认为可以分为:崩溃治理、内存优化、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的加载时机