1面
- 自我介绍
- 项目里的困难
- 使用过哪些设计模式
- 讲一下MVC
- MVVM
- TCP三次握手四次挥手
- 为什么是三次握手四次挥手
- 介绍分析学过的所有排序算法
- 排序的稳定性指的是
- 数组和链表
- 有什么数据结构可以兼顾数组和链表的优点
- 讲一下进程和线程
- iOS点击事件处理
- 内存泄漏和内存溢出是什么
- 使用block的内存泄漏
- 写一下冒泡排序
- 给定数组和k,求数组中k个连续元素和的最大值
- (反问)部门的业务内容
2面
- 自我介绍
- 项目里的印象深刻的困难
- 为什么选iOS
- 怎么捕获点击事件
- (比划)A的子视图B,B里有一个按钮C,C的显示范围超出了B,点击超出范围的B会有响应吗
- 响应者链的体系
- OC写一个Person类,拥有外部只可读的name,外部可读写的age两个属性,提供initWithName的初始化方法,保证两个Person的相等只需要两个Person的name相等
- 苹果公司为什么设计UITableView有dataSource和delegate
- UIView的继承关系
- isa指针是什么
- UIController和UIResponder的关系(二面没答好三面又问了)
- 介绍NSNotification,如何使用
- block是什么
- block可以视作一个对象吗
- 面向对象编程
- 说OC和C++是面向对象编程语言,C语言则不是的根本原因
- 什么是隐式动画
- 算法题:给一个数组和k,从数组里找三个数的和最接近k并返回
3面
- 各种项目细节
- 觉得前两面怎么样
- 什么契机选择iOS
- 看了哪些书
- storyboard的原理
- UIController和UIResponder
- 点击屏幕到响应事件的流程是怎样的
- iOS内存管理
- 为什么说block和对象相互持有
- 类比其他语言(C++)的内存管理
- iOS动画
- TCP的慢启动过程
- WEB页面解析过程
- 学校里计算机网络实验做了什么
- 多线程需要注意什么
- 怎么保证线程安全
- 反问环节:实习生的培养规划
hr面
各种家长里短,复盘前三轮面试、有接触其他技术栈吗、在校学习情况、职业选择与规划以及入职时间等等……整个过程还是比较轻松的。
资料推荐
如果你正在跳槽或者正准备跳槽不妨动动小手,添加一下咱们的交流群1012951431来获取一份详细的大厂面试资料为你的跳槽多添一份保障。