字节跳动客户端一二三面~面经


一面

时间:1h

内容:

  • 自我介绍
  • OC的属性修饰词(strong, weak, assign,copy)讲一下
  • 堆和栈,对象什么情况下在堆上,什么情况下在栈上
  • 自动释放池相关:在什么时候去销毁对象,自动释放池的意义?
  • 多线程方案
  • 线程安全相关
  • 自旋锁与互斥锁的原理
  • 对OC的动态性理解:
  • 静态语言与OC语言调用方法/函数的区别
  • 分类的方法是如何添加到类的
  • KVO实现原理及使用
  • 触摸事件/点击事件的传递过程(事件传递链)
  • 项目中的技术难点
  • tableview的性能优化
  • 什么是离屏渲染, 哪些操作会引起离屏渲染,为什么会出现离屏渲染:
  • 算法:每K个节点翻转链表

二面

时间:40 min

内容:

  • 自我介绍
  • 项目相关
  • 面试官介绍了他们的团队
  • 两道多线程题目(问执行结果,就是考察GCD的同步异步,串行队列和并发队列)
  • 场景:5个下载任务(比如下载图片),然后要求这5个任务完成后再去执行另外的任务,说出想到的所有方案
  • 避免循环引用的方案,引申出 __block 相关问题
  • 对象在堆上还是栈上
  • id和instancetype的区别:instancetype会进行一个类型判断
  • protocol的应用场景
  • delegate用什么修饰,然后引申出strong,weak,assign,copy
  • init、initialize和load
  • 算法:顺时针打印矩阵

三面:

时间:50 min

内容(这一面没录音,只能记得大概):

  • 自我介绍
  • 项目相关
  • 讲讲runloop
  • 还会哪些语言
  • 为什么选择客户端
  • 学习方法分享一下
  • 源码看过哪些
  • 音视频相关的了解哪些
  • 算法:链表的选择排序

HR面

  • 没有HR面
© 著作权归作者所有
这个作品真棒,我要支持一下!
一个iOS技术交流的小圈子,用文章叙述开发中常用的想法和造轮子的分享。 订阅后 可以添加微信 mayday173...
0条评论
top Created with Sketch.