给最近正在找工做(iOS)的朋友一些建议/经验

 众所周知, iOS开发找工做愈来愈难, 企业要求愈来愈高,一方面是资本寒冬期+七八月是企业招人淡季, 另一方面也是iOS市场饱和。最近有出去看新机会, 因此下面记录一下面试XimalayaFM的大概过程。面试

面试一共分为4轮,全程手写代码和算法。算法

一面:自我介绍, 而后问一下手头开发App日活和崩溃率,接着开始问数组

1. 无痕埋点实现原理,手写方法交换代码;并发

2. 手写代码使用GCD完成: 先并发下载3张图片, 等3张下载完了再并发下载剩余3张, 这里能够使用dispatch_barrage栅栏来区分任务, 也能够使用信号量;socket

3. timer是否精准, 怎么使用精准的定时器…oop

4. runloop监听主线程卡顿: 使用observer监听主线程loop, 结合信号量post

二面: 手写代码: log(a), postNotification(log(b)),log(c), 问打印顺序, 这里主要考察分线程和主线程的通知回调是否同步,而后又问了UI卡顿优化的问题;优化

三面: 考察了隐式和显式动画、如何实现圆形进度条、离屏渲染卡顿底层原理(垂直同步信号) 、事件响应链详细过程、socket创建链接详细过程,最后是手写单链表的反转代码;动画

四面: 主要考察算法: 手写冒泡排序,经常使用排序算法的时间复杂度, 以基准数偏移的有序数组的查找值为n的元素,要求时间复杂度O(logn)(这里能够利用二分法查找), 最后就问了一些我的职业发展以及现有团队规模问题, 再而后就是谈薪资…spa


总结: runloop runtime 经常使用排序算法 链表反转 查找等问题在面试二线大厂的时候基本是必考的点, 最近找工做的朋友须要多留意~

相关文章
相关标签/搜索