今日头条 今日头条一面 自我介绍 手里有你的简历,但是还是想听听你来自我介绍下 • 合并两个有序数组 • 二叉树的反转 • 线程和进程的区别 • 堆和栈的区别 • load和initialize区别以及它们有哪些应用 • 代码写在load和initialize中会影响启动吗 • 介绍下iOS中的多线程 • GCD手动创建的线程和GCD提供的API线程有啥关系 • 有读过GCD的源码吗 • 挑一个比较典型的项目进行分享 • iOS中开发有哪些调优策略 • KVO和KVC是什么 • 工厂模式是什么 • 工厂模式和抽象工厂的区别 • 单例模式如何设计 • 多线程有哪些 • GCD中信号量怎么使用 • 一个队列负责插入数据操作,一个队列负责读取操作,同时操作一个存储的队列,如何保证顺利进行 • 原型模式 今日头条二面 • 实现一个LUR Cache,包含读、写两个操作 • block相关 • 发送网络请求 • MVVM • KVO • 消息机制 什么情况使用weak关键字,相比assign有什么不同? 链如何让自己的类用copy修饰符?如何重写带copy关键字的setter? 深拷贝与浅拷贝分别是什么? @property的本质是什么?ivar、getter、setter是如何生成并添加到这个类中的? 今日头条三面 算法 • 查找两个节点的最近公共父节点 • 相比上次来面试提高了什么 • 来段英文介绍 • 拿过哪些offer • 为什么选择去天天狼人杀 • AFNetworking的源码架构 • 自己如何设计网络库 • Masonry源码架构 • TCP的三次握手 • TCP的四次挥手