字节客户端(iOS)一面面经 - 图1

一面视频面(50min)

面试官人很好,全程有在把握面试时间,然后遇到不会的问题不会有鄙夷或者别的情绪,实在不会的主动提出跳过.
面试体验除了本人略菜以外还算蛮好.

项目相关

1、实习期间做的项目和需求
2、项目中最难的点(那个项目总体来说比较简单,加上代码带不出公司离职后无法review大部分都忘了,所以这里其实没啥好说的)
3、做过什么比较难的需求?

计算机网络

1、流量控制(滑动窗口)
2、拥塞控制,为什么要将cwnd大小设为原来的一半?
3、四次挥手,为什么要有TIME_WAIT状态?为什么要等待2MLS?
4、如何实现断点续传?(只是粗浅地了解了一下,没接触过,只能说是记录断点)

操作系统

1、进程和线程的区别?
2、进程和线程切换哪个带来的资源损耗大?(因为问题1忘了答这个点)
3、线程切换为什么消耗比较小?(只用修改寄存器即可)
4、追问了进程和线程各自分配了什么资源?

iOS相关

这里可以说一塌糊涂,基本没几个记得起来的…面完人都傻了(主要是离开项目一线太久,也没想到面试会面到iOS,主要在复习C++)
1、runloop了解过吗?
2、点击事件是怎么被触发的?(runloop的事件监听那套,没系统复习所以没答上来)
3、隐式动画了解过吗?
4、CALayer和UIView有啥区别?
5、离屏渲染了解过吗?
6、假设渲染是有一块公共的缓冲区,离屏渲染会引发什么操作才叫离屏呢?
7、Mansory的原理是啥?
8、block捕获int类型和NSObject类型有什么区别?

算法

两个排序好的数组,怎么知道这两个数组的中位数?(二路归并即可,但是当时脑子抽了想优化空间复杂度用了双指针,最后出了点小bug,不过面试官让我口述过了)

最后还是过了,但是感觉很多地方可以再学习…接下来就是好好准备二面吧

资料推荐

如果你正在跳槽或者正准备跳槽不妨动动小手,添加一下咱们的交流群1012951431来获取一份详细的大厂面试资料为你的跳槽多添一份保障。

字节客户端(iOS)一面面经 - 图2

更多精彩分享