原文地址:http://www.reibang.com/p/5fde874e3974
前言
近期的iOS面試求職算是經(jīng)歷了一波小高潮旨剥,話不多說(shuō)际起,直接切入正題践盼,下面是我總結(jié)的2020某些大廠以及小公司的面試題必搞!
目錄
1、iOS 基礎(chǔ)題
2、iOS 實(shí)戰(zhàn)題
3、網(wǎng)絡(luò)題
4抚恒、計(jì)算機(jī)系統(tǒng)題
5、設(shè)計(jì)模式題
6络拌、架構(gòu) & 設(shè)計(jì)題
7俭驮、數(shù)據(jù)結(jié)構(gòu)&算法題
1、iOS 基礎(chǔ)題
1春贸,分類和擴(kuò)展有什么區(qū)別混萝?可以分別用來(lái)做什么?分類有哪些局限性萍恕?分類的結(jié)構(gòu)體里面有哪些成員逸嘀?
2,講一下atomic的實(shí)現(xiàn)機(jī)制允粤;為什么不能保證絕對(duì)的線程安全(最好可以結(jié)合場(chǎng)景來(lái)說(shuō))崭倘?
3,被weak修飾的對(duì)象在被釋放的時(shí)候會(huì)發(fā)生什么维哈?是如何實(shí)現(xiàn)的绳姨?知道sideTable么登澜?里面的結(jié)構(gòu)可以畫(huà)出來(lái)么阔挠?
4,Autoreleasepool 所使用的數(shù)據(jù)結(jié)構(gòu)是什么脑蠕? AutoreleasePoolPage 結(jié)構(gòu)體了解么购撼?
5,講一下對(duì)象谴仙,類對(duì)象迂求,元類,跟元類結(jié)構(gòu)體的組成以及他們是如何相關(guān)聯(lián)的晃跺?為什么對(duì)象方法沒(méi)有保存的對(duì)象結(jié)構(gòu)體里揩局,而是保存在類對(duì)象的結(jié)構(gòu)體里?
6掀虎,iOS 中內(nèi)省的幾個(gè)方法凌盯? class 方法和 objc_getClass 方法有什么區(qū)別?
7,RunLoop的作用是什么烹玉?它的內(nèi)部工作機(jī)制了解么驰怎?(最好結(jié)合線程和內(nèi)存管理來(lái)說(shuō))
8,哪些場(chǎng)景可以觸發(fā)離屏渲染二打?(知道多少說(shuō)多少)
2县忌、iOS 實(shí)戰(zhàn)題
1,有哪些場(chǎng)景是NSOperation比GCD更容易實(shí)現(xiàn)的?(或是NSOperation優(yōu)于GCD的幾點(diǎn)症杏,知道多少說(shuō)多少)
2装获,App 啟動(dòng)優(yōu)化策略?最好結(jié)合啟動(dòng)流程來(lái)說(shuō)(main()函數(shù)的執(zhí)行前后都分別說(shuō)一下鸳慈,知道多少說(shuō)多少)
3饱溢,App 無(wú)痕埋點(diǎn)的思路了解么?你認(rèn)為理想的無(wú)痕埋點(diǎn)系統(tǒng)應(yīng)該具備哪些特點(diǎn)走芋?(知道多少說(shuō)多少)
4绩郎,你知道有哪些情況會(huì)導(dǎo)致app崩潰,分別可以用什么方法攔截并化解翁逞?(知道多少說(shuō)多少)
5肋杖,你知道有哪些情況會(huì)導(dǎo)致app卡頓,分別可以用什么方法來(lái)避免挖函?(知道多少說(shuō)多少)
3状植、網(wǎng)絡(luò)題
1,App 網(wǎng)絡(luò)層有哪些優(yōu)化策略怨喘?
2津畸,TCP為什么要三次握手,四次揮手必怜?
3肉拓,HTTPS的握手流程?為什么密鑰的傳遞需要使用非對(duì)稱加密梳庆?雙向認(rèn)證了解么暖途?
4,HTTPS是如何實(shí)現(xiàn)驗(yàn)證身份和驗(yàn)證完整性的膏执?
5驻售,如何用Charles抓HTTPS的包?其中原理和流程是什么更米?
4欺栗、計(jì)算機(jī)系統(tǒng)題
1,了解編譯的過(guò)程么征峦?分為哪幾個(gè)步驟迟几?
2,靜態(tài)鏈接了解么眶痰?靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)的區(qū)別瘤旨?
3,static和const有什么區(qū)別竖伯?
4存哲,什么時(shí)候會(huì)出現(xiàn)死鎖因宇?如何避免?
5祟偷,有哪幾種鎖察滑?各自的原理?它們之間的區(qū)別是什么修肠?最好可以結(jié)合使用場(chǎng)景來(lái)說(shuō)
5贺辰、設(shè)計(jì)模式題
1,除了單例嵌施,觀察者設(shè)計(jì)模式以外饲化,還知道哪些設(shè)計(jì)模式?分別介紹一下
2吗伤,iOS SDK 里面有哪些設(shè)計(jì)模式的實(shí)踐吃靠?
3,設(shè)計(jì)模式的成員構(gòu)成以及工作機(jī)制是什么足淆?
6巢块、架構(gòu) & 設(shè)計(jì)題
1,MVC和MVVM的區(qū)別巧号?MVVM和MVP的區(qū)別族奢?
2,面向?qū)ο蟮膸讉€(gè)設(shè)計(jì)原則了解么丹鸿?最好可以結(jié)合場(chǎng)景來(lái)說(shuō)越走。
3,可以說(shuō)幾個(gè)重構(gòu)的技巧么卜高?你覺(jué)得重構(gòu)適合什么時(shí)候來(lái)做弥姻?
4南片,你覺(jué)得框架和設(shè)計(jì)模式的區(qū)別是什么掺涛?
5,看過(guò)哪些第三方框架的源碼疼进,它們是怎么設(shè)計(jì)的薪缆?設(shè)計(jì)好的地方在哪里,不好的地方在哪里伞广,如何改進(jìn)拣帽?(這道題的后三個(gè)問(wèn)題的難度已經(jīng)很高了,如果不是太N的公司不建議深究)
7嚼锄、數(shù)據(jù)結(jié)構(gòu)&算法題
1减拭,鏈表和數(shù)組的區(qū)別是什么?插入和查詢的時(shí)間復(fù)雜度分別是多少区丑?
2拧粪,哈希表是如何實(shí)現(xiàn)的修陡?如何解決地址沖突?
3可霎,排序題:冒泡排序魄鸦,選擇排序,插入排序癣朗,快速排序(二路拾因,三路)能寫(xiě)出那些?
4旷余,鏈表題:如何檢測(cè)鏈表中是否有環(huán)绢记?如何刪除鏈表中等于某個(gè)值的所有節(jié)點(diǎn)?
5正卧,數(shù)組題:如何在有序數(shù)組中找出和等于給定值的兩個(gè)元素庭惜?如何合并兩個(gè)有序的數(shù)組之后保持有序?
6穗酥,二叉樹(shù)題:如何反轉(zhuǎn)二叉樹(shù)护赊?如何驗(yàn)證兩個(gè)二叉樹(shù)是完全相等的?
結(jié)語(yǔ)
iOS面試中刷題只是一方面準(zhǔn)備砾跃,但是骏啰,好的面試機(jī)會(huì),離不開(kāi)技術(shù)的支持抽高,在找工作的同時(shí)判耕,不要忘記提升自身技術(shù),希望求職中的iOS開(kāi)發(fā)者翘骂,找到一份自己滿意的工作壁熄!
以下文章可以做一個(gè)學(xué)習(xí)參考:
GCD面試要點(diǎn)
block面試要點(diǎn)
Runtime面試要點(diǎn)
RunLoop面試要點(diǎn)
內(nèi)存管理面試要點(diǎn)
MVC、MVVM面試要點(diǎn)
網(wǎng)絡(luò)性能優(yōu)化面試要點(diǎn)
網(wǎng)絡(luò)編程面試要點(diǎn)
KVC&KVO面試要點(diǎn)
數(shù)據(jù)存儲(chǔ)面試要點(diǎn)
混編技術(shù)面試要點(diǎn)
設(shè)計(jì)模式面試要點(diǎn)
UI面試要點(diǎn)