今日头条社招 ios工程师面经
今日头条
今日头条一面
自我介绍
手里有你的简历,但是还是想听听你来自我介绍下
• 合并两个有序数组
• 二叉树的反转
• 线程和进程的区别
• 堆和栈的区别
• 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的四次挥手
#社招##iOS##面经#