(最新)iOS高級面試,大廠常問iOS面試題

原文地址:http://www.itdecent.cn/p/5fde874e3974
前言
近期的iOS面試求職算是經(jīng)歷了一波小高潮,話不多說,直接切入正題,下面是我總結(jié)的2020某些大廠以及小公司的面試題!

目錄
1、iOS 基礎(chǔ)題
2、iOS 實戰(zhàn)題
3、網(wǎng)絡題
4、計算機系統(tǒng)題
5、設計模式題
6、架構(gòu) & 設計題
7、數(shù)據(jù)結(jié)構(gòu)&算法題

1、iOS 基礎(chǔ)題
1,分類和擴展有什么區(qū)別?可以分別用來做什么?分類有哪些局限性?分類的結(jié)構(gòu)體里面有哪些成員?

2,講一下atomic的實現(xiàn)機制;為什么不能保證絕對的線程安全(最好可以結(jié)合場景來說)?

3,被weak修飾的對象在被釋放的時候會發(fā)生什么?是如何實現(xiàn)的?知道sideTable么?里面的結(jié)構(gòu)可以畫出來么?

4,Autoreleasepool 所使用的數(shù)據(jù)結(jié)構(gòu)是什么? AutoreleasePoolPage 結(jié)構(gòu)體了解么?

5,講一下對象,類對象,元類,跟元類結(jié)構(gòu)體的組成以及他們是如何相關(guān)聯(lián)的?為什么對象方法沒有保存的對象結(jié)構(gòu)體里,而是保存在類對象的結(jié)構(gòu)體里?

6,iOS 中內(nèi)省的幾個方法? class 方法和 objc_getClass 方法有什么區(qū)別?

7,RunLoop的作用是什么?它的內(nèi)部工作機制了解么?(最好結(jié)合線程和內(nèi)存管理來說)

8,哪些場景可以觸發(fā)離屏渲染?(知道多少說多少)

2、iOS 實戰(zhàn)題
1,有哪些場景是NSOperation比GCD更容易實現(xiàn)的?(或是NSOperation優(yōu)于GCD的幾點,知道多少說多少)

2,App 啟動優(yōu)化策略?最好結(jié)合啟動流程來說(main()函數(shù)的執(zhí)行前后都分別說一下,知道多少說多少)

3,App 無痕埋點的思路了解么?你認為理想的無痕埋點系統(tǒng)應該具備哪些特點?(知道多少說多少)

4,你知道有哪些情況會導致app崩潰,分別可以用什么方法攔截并化解?(知道多少說多少)

5,你知道有哪些情況會導致app卡頓,分別可以用什么方法來避免?(知道多少說多少)

3、網(wǎng)絡題
1,App 網(wǎng)絡層有哪些優(yōu)化策略?

2,TCP為什么要三次握手,四次揮手?

3,HTTPS的握手流程?為什么密鑰的傳遞需要使用非對稱加密?雙向認證了解么?

4,HTTPS是如何實現(xiàn)驗證身份和驗證完整性的?

5,如何用Charles抓HTTPS的包?其中原理和流程是什么?

4、計算機系統(tǒng)題
1,了解編譯的過程么?分為哪幾個步驟?

2,靜態(tài)鏈接了解么?靜態(tài)庫和動態(tài)庫的區(qū)別?

3,static和const有什么區(qū)別?

4,什么時候會出現(xiàn)死鎖?如何避免?

5,有哪幾種鎖?各自的原理?它們之間的區(qū)別是什么?最好可以結(jié)合使用場景來說

5、設計模式題
1,除了單例,觀察者設計模式以外,還知道哪些設計模式?分別介紹一下

2,iOS SDK 里面有哪些設計模式的實踐?

3,設計模式的成員構(gòu)成以及工作機制是什么?

6、架構(gòu) & 設計題
1,MVC和MVVM的區(qū)別?MVVM和MVP的區(qū)別?

2,面向?qū)ο蟮膸讉€設計原則了解么?最好可以結(jié)合場景來說。

3,可以說幾個重構(gòu)的技巧么?你覺得重構(gòu)適合什么時候來做?

4,你覺得框架和設計模式的區(qū)別是什么?

5,看過哪些第三方框架的源碼,它們是怎么設計的?設計好的地方在哪里,不好的地方在哪里,如何改進?(這道題的后三個問題的難度已經(jīng)很高了,如果不是太N的公司不建議深究)

7、數(shù)據(jù)結(jié)構(gòu)&算法題
1,鏈表和數(shù)組的區(qū)別是什么?插入和查詢的時間復雜度分別是多少?

2,哈希表是如何實現(xiàn)的?如何解決地址沖突?

3,排序題:冒泡排序,選擇排序,插入排序,快速排序(二路,三路)能寫出那些?

4,鏈表題:如何檢測鏈表中是否有環(huán)?如何刪除鏈表中等于某個值的所有節(jié)點?

5,數(shù)組題:如何在有序數(shù)組中找出和等于給定值的兩個元素?如何合并兩個有序的數(shù)組之后保持有序?

6,二叉樹題:如何反轉(zhuǎn)二叉樹?如何驗證兩個二叉樹是完全相等的?

結(jié)語
iOS面試中刷題只是一方面準備,但是,好的面試機會,離不開技術(shù)的支持,在找工作的同時,不要忘記提升自身技術(shù),希望求職中的iOS開發(fā)者,找到一份自己滿意的工作!

以下文章可以做一個學習參考:
GCD面試要點
block面試要點
Runtime面試要點
RunLoop面試要點
內(nèi)存管理面試要點
MVC、MVVM面試要點
網(wǎng)絡性能優(yōu)化面試要點
網(wǎng)絡編程面試要點
KVC&KVO面試要點
數(shù)據(jù)存儲面試要點
混編技術(shù)面試要點
設計模式面試要點
UI面試要點

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容