iOS開發,重點iOS技術點+面試題整理

以下是小編收集總結的iOS技術點+面試題分類;看看你都會了嗎?

重點總結-四大分類

  • iOS底層原理
  • 性能優化以及架構
  • 多線程、網絡
  • 數據結構算法

iOS底層原理(必問):iOS開發必備能力,也是大廠面試快速篩選人才方式之一。

  • 對象底層原理
  • 指針與內存的一些相關面試
  • Weak 弱引用
  • Block 的原理
  • AutoreleasePool 原理
  • Runloop 的原理
  • Runtime相關、消息轉發原理....
  • 組件化

常問例題

1. 什麼情況使用weak關鍵字,相比assign有什麼不同?
2. 深拷貝與淺拷貝
3. 簡要說一下@autoreleasePool的數據結構?
4. autoreleasePool 在何時被釋放?
5. 說一下iOS內存分區情況
6. 如何解決循環引用?
7. Runloop 和線程的關係?
8. isa指針的理解,對象的isa指針指向哪裏?
9. Runtime 如何實現 weak 屬性?
10. load和initialize的區別
11. ......

性能優化以及架構能力:目前大廠對於這一塊,非常重視;

  • ①性能優化方面:tableView的優化 -> 界面卡頓原理 -> app 性能分析 -> 項目優化

  • ②架構方面:設計模式、解耦手段、組件化....

常問例題:

1. 造成tableView卡頓的原因有哪些?
2. 如何提升 tableview 的流暢度?
3. APP啓動時間應從哪些方面優化?
4. 如何降低APP包的大小?
5. 日常如何檢查內存泄露?
6. iOS有哪些常見的設計模式?
7. 單例會有什麼弊端?
8. MVC、MVP、MVVM模式
9. 編程中的六大設計原則?
10. ......

多線程、網絡能力:iOS中高級開發,都應該瞭解,並且熟悉的知識點;

  • 多線程的原理
  • 線程池
  • GCD
  • 鎖相關原理
  • 網絡設計
  • 網絡框架的理解
  • 開發過程中一些需求結合多線程或者網絡設計!

常問例題

1. 進程與線程?
2. 什麼是多線程?
3. 多線程的優點和缺點?
4. 多線程的 並行 和 併發 有什麼區別?
5. 多線程中的死鎖?
6. GCD執行原理?
7. 網絡的七層協議?
8. Http 和 Https 的區別?Https爲什麼更加安全?
9. 解釋一下 三次握手 和 四次揮手?
10. Cookie和Session
11. ......

數據結構算法能力佔比比較大:通常一般大公司都會有一些筆試:雖然不在覈心崗位對於數據結構算法要求不是非常嚴格,但是也會有一些常規的數據結構和算法的題

  • 排序
  • 數據結構設計
  • 複雜度討論
  • 一些腦筋急轉彎的算法題
  • ......

常問例題:

1. 鏈表和數組的區別是什麼?插入和查詢的時間複雜度分別是多少?
2. 哈希表是如何實現的?如何解決地址衝突?
3. 排序題:冒泡排序,選擇排序,插入排序,快速排序(二路,三路)能寫出哪些?
4. 鏈表題:如何檢測鏈表中是否有環?如何刪除鏈表中等於某個值的所有節點?
5. 數組題:如何在有序數組中找出和等於給定值的兩個元素?如何合併兩個有序的數組之後保持有序?
6. 二叉樹題:如何反轉二叉樹?如何驗證兩個二叉樹是完全相等的?
7. 數據結構的存儲一般常用的有幾種?各有什麼特點?
8. ......

iOS面試題答案,請看 "文末-推薦文集"


推薦閱讀:iOS熱門面試技術文集

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章