字节客户端(iOS)凉经
一面视频面(3月3日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,不过面试官让我口述过了)
最后还是过了,但是感觉很多地方可以再学习...接下来就是好好准备二面吧,希望能在春招收获满意的offer.
二面视频面(3月8日,60min)
面试官给人感觉很好,谈笑风生,然后在谈笑风生中挂了。。。面试官说我答案像背的,我:。。。。
大体问得都很基础,和一面十分类似,因此只列举几个印象比较深的题。
1、智能指针了解吗?写一个智能指针的循环引用代码
2、哈希冲突了解吗?拉链法如果想拿到链表上的指定数据应该怎么解决?(这里我提了对链表使用一个哈希算法的方案,不清楚是否有别的)
3、C++对象的内存分布是怎样的?
4、new一个对象都发生了什么?
5、算法问了迭代中序遍历树(很简单的题,太久没打了没debug出来,也可能是挂的原因之一。。。思路是用栈遍历到最左的叶子节点,再向右遍历)