iOS面試題 --- 中級

最近在準備ms,發現了一些比較尖銳的問題,可能平時開發注意不要,本身也會可是就是不能清晰的表達出來,問題比較寬泛再此作個總結(下面附部分答案,答案爲本身理解結合百度,可能有些不標準歡迎各位提出意見)。問題持續更新,答案也持續更新。歡迎投稿。這些都會了我以爲找工做應該沒問題了。這些知識是一些簡單的點,真正面試的時候確定會有比這兒更深的層次,這只是引出一個問題的點。仍是須要多學習面試

iOS底層

  1. KVO的實現原理,KVC是什麼,他是如何實現的
  2. 請簡單介紹一下Runtime,以及它的原理和應用(消息發送機制,動態解析。應用防止崩潰)
  3. 什麼是block?(堆block,棧block,全局block)
  4. weak的實現原理。
  5. 通知和代理的區別。
  6. 說說你讀過的第三方庫工做流程。
  7. oc類的本質是什麼?他的結構是什麼,他是如何初始化的。
  8. Swift類的初始化發生了什麼

架構

  1. 談談MVC,MVVM,MVP的三種架構各自的優缺點。

設計模式

  1. 適配器
  2. 裝飾器
  3. 迭代器
  4. 工廠模式,抽象工廠,簡單工廠模式的區別
  5. 對象池(可選)
  6. 適配器
  7. 代理
  8. 單例的優缺點

...算法

網絡相關

  1. 什麼是http,它與https的區別
  2. tcp和udp的區別,介紹一下三次握手,四次揮手,爲啥鏈接要三次,斷開要四次揮手
  3. alamofire或者AFN的證書認證。

線程

  1. 何時會形成線程死鎖
  2. Runloop是什麼以及它的工做流程
  3. NSOperation和GCD的區別。
  4. 線程與進程的區別。

數據結構與算法

  1. 鏈表是什麼,如何肯定鏈表有環
  2. 如何用隊列實現一個棧,或者用棧實現一個隊列。
  3. 二分法查找的實現流程
  4. 說說你知道的排序算法的實現以及他們的時間複雜度,以及穩定性。
相關文章
相關標籤/搜索