眾所周知, iOS開發找工作越來越難, 企業要求越來越高,一方面是資本寒冬期+七八月是企業招人淡季, 另外一方面也是iOS市場飽和。最近有出去看新機會, 所以下麵記錄一下麵試XimalayaFM的大概過程。 面試一共分為4輪,全程手寫代碼和演算法。 一面:自我介紹, 然後問一下手頭開發App日活和崩潰 ...
眾所周知, iOS開發找工作越來越難, 企業要求越來越高,一方面是資本寒冬期+七八月是企業招人淡季, 另外一方面也是iOS市場飽和。最近有出去看新機會, 所以下麵記錄一下麵試XimalayaFM的大概過程。
面試一共分為4輪,全程手寫代碼和演算法。
一面:自我介紹, 然後問一下手頭開發App日活和崩潰率,接著開始問
1. 無痕埋點實現原理,手寫方法交換代碼;
2. 手寫代碼使用GCD完成: 先併發下載3張圖片, 等3張下載完了再併發下載剩餘3張, 這裡可以使用dispatch_barrage柵欄來區分任務, 也可以使用信號量;
3. timer是否精準, 怎麼使用精準的定時器…
4. runloop監聽主線程卡頓: 使用observer監聽主線程loop, 結合信號量
二面: 手寫代碼: log(a), postNotification(log(b)),log(c), 問列印順序, 這裡主要考察分線程和主線程的通知回調是否同步,然後又問了UI卡頓優化的問題;
三面: 考察了隱式和顯式動畫、如何實現圓形進度條、離屏渲染卡頓底層原理(垂直同步信號) 、事件響應鏈詳細過程、socket建立連接詳細過程,最後是手寫單鏈表的反轉代碼;
四面: 主要考察演算法: 手寫冒泡排序,常用排序演算法的時間複雜度, 以基準數偏移的有序數組的查找值為n的元素,要求時間複雜度O(logn)(這裡可以利用二分法查找), 最後就問了一些個人職業發展以及現有團隊規模問題, 再然後就是談薪資…
總結: runloop runtime 常用排序演算法 鏈表反轉 查找等問題在面試二線大廠的時候基本是必考的點, 最近找工作的朋友需要多留意~