2021年,大廠常問的46個iOS基礎技術點。

前言

收錄的面試技術點,可能沒那麼多時間來總結答案,有什麼需要討論的地方歡迎大家底部留言。主要記錄一下大廠技術點,希望能幫助到正在面試或者將要面試的夥伴吧。
  • 更多技術題合集:

iOS技術題大全(上)

iOS技術題大全(中)

iOS技術題大全(下)

46個技術題:

    1. 第一個問題:怎麼優化應用啓動時間。
    1. category,method 的實現機制,class的載入過程。
    1. runloop是來做什麼的?runloop和線程有什麼關係?主線程默認開啓了runloop嗎?子線程呢?
    1. 如何保證線程安全?死鎖是如何產生的?
    1. 線程之間是如何共享資源的?
    1. 進程之間如何共享資源。
    1. 定時器的幾個類方法底層分別是怎麼實現的?
    1. 從設計模式的角度分析Delegate、Notification、KVO的區別。
    1. Struct與Union主要區別
    1. plist讀寫操作如何進行鎖管理
    1. NSNotification實現邏輯,子線程中給主線程發送通知,主線程是否會處理通知.
    1. 編譯器怎麼檢測#import和#include導入多次的問題,三方庫導入時如何設置""和<>
    1. 多線程:什麼時候處理多線程,幾種方式,優缺點。
    1. 設計一個方案來檢測KVO的同步異步問題
    1. willChange和 didChange的不同點
    1. 如何令自己所寫的對象具有拷貝功能?
    1. 談一談對mrc和arc的理解
    1. 談談對自動釋放池的理解
    1. 自動釋放池在mrc和arc區別
    1. 多層自動釋放池嵌套的對象在哪一層釋放
    1. 談談對於block理解,mrc和arc下有什麼區別。
    1. TCP和UDP的應用場景與區別?
    1. TCP握手爲什麼是三次?TCP揮手爲啥是四次呢?
    1. TCP的擁塞控制?
    1. socket編程裏面,select、poll、epoll的區別和特點?
    1. client和server之間TCP通信,雙方使用到的socket函數以及過程?
    1. HTTP和HTTPS的區別?
    1. TLS的加密過程?
    1. TLS握手的過程?
    1. TLS握手時的隨機數有什麼作用?
    1. 說說你理解weak屬性?
    1. UIView和CALayer是什麼關係?
    1. @synthesize 和 @dynamic 分別有什麼作用?
    1. 動態綁定。
    1. Category(類別)、 Extension(擴展)和繼承的區別。
    1. 爲什麼代理要用weak?代理的delegate和dataSource有什麼區別?block和代理的區別?
    1. id和NSObject*的區別。
    1. 如何令自己所寫的對象具有拷貝功能?
    1. 使用系統的某些block api(如UIView的block版本寫動畫時),是否也考慮引用循環問題?
    1. static有什麼作用?
    1. Swift 下的如何使用 KVC?
    1. Swift有哪些模式匹配?
    1. objc在向一個對象發送消息時,發生了什麼?
    1. 靜態庫的原理是什麼?你有沒有自己寫過靜態編譯庫,遇到了哪些問題?
    1. 不手動指定autoreleasepool的前提下,一個autorealese對象在什麼時刻釋放?(比如在一個vc的viewDidLoad中創建)
    1. OC完整的消息轉發機制+代碼實現
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章