前言
iOS開發(fā)者都想了解最新的面試情況唆香,去做更充足的準備,下面看那些有你自己不會的東西,自己可以研究下媳禁,也可以收藏以免不時之需!
第一部分底層必問題:
- 什么情況使用weak關鍵字画切,相比assign有什么不同竣稽?
- 深拷貝與淺拷貝
- 簡要說一下@autoreleasePool的數(shù)據(jù)結(jié)構?
- autoreleasePool 在何時被釋放?
- 說一下iOS內(nèi)存分區(qū)情況
- 如何解決循環(huán)引用毫别?
- Runloop 和線程的關系娃弓?
- isa指針的理解,對象的isa指針指向哪里岛宦?
- Runtime 如何實現(xiàn) weak 屬性台丛?
- load和initialize的區(qū)別
- ......
第二部分性能優(yōu)化架構能力:
- 造成tableView卡頓的原因有哪些?
- 如何提升 tableview 的流暢度砾肺?
- APP啟動時間應從哪些方面優(yōu)化挽霉?
- 如何降低APP包的大小变汪?
- 日常如何檢查內(nèi)存泄露侠坎?
- iOS有哪些常見的設計模式?
- 單例會有什么弊端裙盾?
- MVC实胸、MVP、MVVM模式
- 編程中的六大設計原則番官?
- ......
第三部分多線程庐完、網(wǎng)絡能力:
- 什么是多線程?
- 多線程的優(yōu)點和缺點徘熔?
- 多線程的 并行 和 并發(fā) 有什么區(qū)別假褪?
- 如何保證線程安全?
- 多線程中的死鎖近顷?
- 線程之間是如何共享資源的生音?
- 進程之間如何共享資源?
- GCD執(zhí)行原理窒升?
- 網(wǎng)絡的七層協(xié)議缀遍?
- Http 和 Https 的區(qū)別?Https為什么更加安全饱须?
- 解釋一下 三次握手 和 四次揮手域醇?
- socket編程里面,select蓉媳、poll譬挚、epoll的區(qū)別和特點?
- client和server之間TCP通信酪呻,雙方使用到的socket函數(shù)以及過程减宣?
- TLS的加密過程?
- TLS握手時的隨機數(shù)有什么作用玩荠?
- ......
第四部分數(shù)據(jù)結(jié)構算法:
- 鏈表和數(shù)組的區(qū)別是什么漆腌?插入和查詢的時間復雜度分別是多少贼邓?
- 哈希表是如何實現(xiàn)的?如何解決地址沖突闷尿?
- 排序題:冒泡排序塑径,選擇排序,插入排序填具,快速排序(二路统舀,三路)能寫出哪些?
- 鏈表題:如何檢測鏈表中是否有環(huán)劳景?如何刪除鏈表中等于某個值的所有節(jié)點绑咱?
- 數(shù)組題:如何在有序數(shù)組中找出和等于給定值的兩個元素?如何合并兩個有序的數(shù)組之后保持有序枢泰?
- 二叉樹題:如何反轉(zhuǎn)二叉樹描融?如何驗證兩個二叉樹是完全相等的?
- 數(shù)據(jù)結(jié)構的存儲一般常用的有幾種衡蚂?各有什么特點窿克?
- 如何用棧實現(xiàn)隊列?說一下思路毛甲。
- ......
總結(jié)整理的“iOS面試題技術點”分類年叮,到這里就告一段落了!
資料下載:
"iOS簡歷模板+新iOS面試題+iOS提升視頻"網(wǎng)址 :
docs.qq.com/doc/DVWlQam9Qd3B1cEF2
有什么需要討論的地方歡迎大家指教玻募。主要記錄一下準備過程只损,和面試的一些總結(jié),希望能幫助到正在面試或者將要面試的同學吧