寫此文的目的
記得去年這個時候自己就在面試,今年面試自己總結了很多。我按照被問的次數羅列了一些知識點,整理了下自己總結的東西。(因為知道自己能力有限,沒有過深的去解釋每個點,不過基本谷歌一下,所有的內容基本可以查到)
羅列的前13都是面試命中率較高的知識點
背景
焦慮的不行要漲薪啊。
總共面試了7家,分別是豆瓣、好未來、平安、*暫時匿名*、印象筆記、360、鬥米。談到offer的有、到2面的也有,在一面就被刷的有3家。
豆瓣、360、鬥米3家是有稍微完整的知識點記錄,其他的或因為拿到offer、或因為當時面試狀態不佳,都是靠之後回憶了一部分。
感受以及總結
iOS開發人員需求還是有的,只是要求高了很多。
對於知識點的掌握不再止於瞭解,精確度、深度的要求都有提升。
自我介紹、專案亮點、專案難點一定要事先準備好,有深度,不卡殼。(可以看看面試之道第一章),演算法、資料結構的考量因為我面的不是太大的廠,面的不深,但是會有。
好未來執行時的東西偏多、 印象筆記偏廣、平安偏元件化(自己感覺)
知識點總結(2次以上13個。14後之後的都是被問到一次也可以看看)
- tableview滑動流暢的優化 被問6次這個相信大家肯定問到過,推薦ibireme的blog.ibireme.com/2015/11/12/…
kvo kvc 被問5次
這個的會問kvc的內部實現, kvo的原理- 訊息轉發 被問5次unrecognized selector sent to instance **一般到了這裡就沒跑了 等面試官說完,基本訊息轉發過程中都經過了哪些步驟說一說,每一步是幹什麼,以及能做什麼。會結合Runtime新增方法什麼的聊一聊
- gcd 被問5次推薦《Effective Objective-C》 2.0第6章 訊號量 group 柵欄 3個關鍵詞如何使用
- 事件響應 被問5次響應鏈和事件傳遞、怎麼尋找最合適的view、 一個view的frame超出父view會怎樣
- 迴圈引用的幾種,成員變數怎麼解環 被問4次可能會延伸到weak的實現 weak-strong dance 為啥還要strong一下成員變數產生迴圈引用該怎麼解
- property相關 被問4次Weak strong copy 什麼時候用啥,混用會有什麼後果。為啥string用copyweak的底層實現
- Runtime 被問4次啥是執行時 能幹哈 objc_messageSend的底層實現列印專案中所有類,類的方法method swizzling
- 代理,block,通知的差別 被問3次可能會手寫代理 可能在代理裡串下為什麼用weak修飾block的本質 迴圈引用及其解決通知的原理 自己實現一個通知的思路
- 元件化 被問3次
元件間呼叫及通訊、也會串設計模式mvc、mvvm
- runloop和執行緒的關係 被問3次這個也沒啥可說的,有下面一段程式碼被問到dispatch_queue_t queue = dispatch_get_global_queue(0, 0);dispatch_async(queue, ^{NSLog(@"1");[self performSelector:self withObject:@selector(test) afterDelay:.0];NSLog(@"3");});- (void)test{NSLog(@"2");}推薦閱讀連結:https://www.jianshu.com/p/5a4ba3c16… 第九點
- self super 呼叫方法的步驟 被問2次
- autoreleasepool的底層實現,什麼時候被釋放 被問2次
- 判斷連結串列重複節點 被問2次
- 如何隱藏一個view 有幾鍾方法這個有點籠統,具體也沒啥好的答案,大家可以留言討論下
- iOS推送流程(APNS)
- ismemberof isclassof的去唄
- static全域性和區域性的差別
- uivew繼承自誰,CALayer與uiview的關係
- .isa指標
- atmtic是執行緒安全嘛,為什麼
- 不通過中間變數交換2個變數
- 25匹馬 5個賽道 賽多少次可以獲得第三名
- 分層架構在計算機中有哪些用到
- Http協議三次握手過程
推薦閱讀:
- https://juejin.im/user/595c8f866fb9a06bbf6fecba .
- https://www.jianshu.com/p/5a4ba3c165b9
- 《iOS面試指南》
- 《Effective Objective-C 2.0》