最近找工作,筆者面了字節(jié)跳動,嗶哩嗶哩,哈羅單車,騰訊,支付寶等公司,下面就這些公司N面的技術(shù)題做個整體匯總,供大家參考:
網(wǎng)絡(luò):
1.HTTP和HTTPS區(qū)別?
2.HTTPS的加密方式有哪幾種?如何簽名的?
3.HTTP的缺點有哪些?
4.TCP和UDP區(qū)別?
5.如何優(yōu)化TCP連接?
6.APP中網(wǎng)絡(luò)響應(yīng)慢從哪幾個方面優(yōu)化?
7.socket屬于哪個層?原理是什么?
APP優(yōu)化:
1.如何優(yōu)化項目編譯速度?
2.冷啟動速度如何優(yōu)化?
3.后臺如何保活?
4.如何做性能檢測,并逐項提出優(yōu)化建議?
5.APP埋點怎么做?
視頻和IM:
1.webRTC的PLI是什么意思?原理是什么?
2.webSocket如何建立連接的?原理是什么?
3.你們IM采用什么協(xié)議?
4.簡述H264編碼的優(yōu)缺點
5.音頻采樣如何優(yōu)化?
6.解碼用的硬解還是軟解?各自優(yōu)缺點?
7.RTMP協(xié)議內(nèi)容?RTSP協(xié)議是什么?
多線程:
1.簡述GCD,NSThread,NSOperation使用,各自優(yōu)缺點
2.GCD底層原理是什么?
3.給定一個網(wǎng)絡(luò)請求依賴場景,用自己熟悉的方式解決
4.常用哪種鎖?原理是什么
5.atomic一定是線程安全的嗎?
6.NSArray如何保證線程安全?
架構(gòu):
1.APP架構(gòu)怎么理解?如何搭建和優(yōu)化?
2.如果讓你重構(gòu)XX頁面,你會怎么做?
3.MVVM和MVC對比,項目中實際如何使用?
4.APP動態(tài)化方案?自己實現(xiàn)一個會怎么做?
安全:
1.本地數(shù)據(jù)如何加密?
2.對稱加密和非對稱加密優(yōu)缺點?
3.簡述哈希算法,有什么作用?
4.非對稱加密有哪些算法?
5.如何破解和監(jiān)聽HTTPS?
6.如何判斷手機是否越獄
7.如何防止被反編譯
RunTime:
1.方法交換的原理及應(yīng)用場景
2.消息轉(zhuǎn)發(fā)的過程
3.分類加載的原理及順序?
4.KVO原理
5.weak指針自動置nil的原理
RunLoop:
1.哪些地方會用到runLoop?
2.runLoop的原理是什么?
3.NSTimer的target使用會有什么問題嗎?
內(nèi)存:
1.堆和棧的區(qū)別
2.如何防止循環(huán)引用?
3.內(nèi)存使用如何優(yōu)化?
4.線上如何監(jiān)測內(nèi)存使用?
UI:
1.點擊屏幕,到響應(yīng)事件,經(jīng)歷了什么?
2.view的視圖樹結(jié)構(gòu)是怎么樣的?
3.同時畫陰影和圓角,怎么實現(xiàn)?
4.tableView的幀數(shù)優(yōu)化?有很多種cell時候如何設(shè)計代碼結(jié)構(gòu)?
5.GPU渲染原理,離屏渲染問題如何解決?
歡迎大家留言自己的思路~