2019年6月24更新:
2019年6月份來(lái)深圳骗爆,面試了騰訊富途等幾家公司佩憾,記錄幾個(gè)印象比較深的問(wèn)題
- 期望最大值潜沦、動(dòng)態(tài)規(guī)劃的算法問(wèn)題盏阶,具體請(qǐng)參考Leecode
- iOS上一個(gè)控件從code到display到屏幕上的全流程
- tcp/udp的區(qū)別晒奕?tcp的內(nèi)核算法?
- 主線(xiàn)程為什么不能進(jìn)行網(wǎng)絡(luò)請(qǐng)求般哼,為什么會(huì)阻塞UI吴汪?
- runloop是怎么被喚醒來(lái)工作的惠窄?建議參看runloop的實(shí)現(xiàn)代碼
- tcp下的直播過(guò)程中蒸眠,網(wǎng)絡(luò)抖動(dòng)怎么處理?淤包怎么處理杆融?弱網(wǎng)下直播楞卡,tcp/udp做了哪些優(yōu)化?首屏秒開(kāi)怎么做脾歇?
- 點(diǎn)播下播放hls/mp4格式的視頻蒋腮,為什么不能精確seek?怎么處理才能精確seek? (key: gop藕各,一個(gè)gop一般都是若干秒池摧,seek到gop中的非I幀就不能精確seek. 可以通過(guò)提前渲染不顯示的方式處理。)
- 大并發(fā)環(huán)境下的設(shè)計(jì)架構(gòu)能力激况。例如:百萬(wàn)人數(shù)級(jí)別的直播間作彤,每一秒彈幕消息膘魄、禮物等數(shù)據(jù)都可能上萬(wàn)條,如果收到數(shù)據(jù)后不做處理直接展示竭讳,手機(jī)肯定吃不消创葡。那么從服務(wù)器收到數(shù)據(jù)到UI展示,中間應(yīng)該怎么處理绢慢?怎么設(shè)計(jì)才能最大程度保證體驗(yàn)灿渴?
- 自己有沒(méi)有嘗試過(guò)不斷給APP增加內(nèi)存,多大的時(shí)候會(huì)被系統(tǒng)殺死胰舆?
總結(jié):面試大廠的時(shí)候骚露,問(wèn)題很基礎(chǔ),基本上都是問(wèn)的原理思瘟,偏向于性能優(yōu)化方面荸百,也有手寫(xiě)簡(jiǎn)單的算法;小公司問(wèn)應(yīng)用的多滨攻,更偏向于能干活够话。嗯,以后還是多問(wèn)自己“為什么”光绕,比如很多人都知道在不能在主線(xiàn)程進(jìn)行網(wǎng)絡(luò)請(qǐng)求女嘲,因?yàn)闀?huì)卡UI,那么诞帐,為什么會(huì)卡UI欣尼?怎么阻塞的呢?
以下為原來(lái)的內(nèi)容
- 發(fā)送消息的完整過(guò)程 如果消息的接收者能夠找到對(duì)應(yīng)的selector停蕉,那么就相當(dāng)于直接執(zhí)行了接收者這個(gè)對(duì)象的特定方法愕鼓;否則,消息要么被轉(zhuǎn)發(fā)慧起,或是臨時(shí)向接收者動(dòng)態(tài)添加這個(gè)selector對(duì)應(yīng)的實(shí)現(xiàn)內(nèi)容菇晃,要么就干脆玩完崩潰掉,死給你看。
- 什么叫 數(shù)據(jù)結(jié)構(gòu)
- Notification是同步的還是異步的?KVO是同步還是異步的?
- 說(shuō)說(shuō)swift多個(gè)版本之間你感觸最深的幾個(gè)變化?
- 拯救程序崩潰的機(jī)會(huì)是那三次?
- iOS應(yīng)用是如何實(shí)現(xiàn)后臺(tái)多任務(wù)處理(Multitasking)的?
- 什么是鏈表?
- 什么是二叉樹(shù)?
- 你用過(guò)哪些設(shè)計(jì)模式?分別用在什么場(chǎng)景?
- 什么是時(shí)間復(fù)雜度?
- 使用drawRect有什么影響?
- 為什么Optional在swift語(yǔ)言中非常重要?
- 編碼實(shí)現(xiàn)最短路徑的算法?
- 迪杰斯特拉和弗洛伊德算法如何選擇?
- 一個(gè)lib包含了很多的架構(gòu), 會(huì)打到最后的包里嗎?
- 什么是Binary search tree? search的時(shí)間復(fù)雜度是多少?
- 你一般是怎么用Instruments?
- _objc_msgFoward函數(shù)是什么?直接調(diào)用它會(huì)發(fā)生什么?
- 用過(guò) CoreData 或者SQLite嗎?讀寫(xiě)是分線(xiàn)程的嗎?遇到過(guò)死鎖沒(méi)有?如何解決?
- BAD_ACCESS在什么情況下會(huì)出現(xiàn)?如何調(diào)試?
- 談一談你常用的開(kāi)發(fā)工具有哪些優(yōu)勢(shì)
- 企業(yè)開(kāi)發(fā)中用過(guò)哪些測(cè)試? 簡(jiǎn)單描述一下這些測(cè)試以及作用?
- ldb(GCD)常用的調(diào)試命令
- 簡(jiǎn)述你理解的敏捷開(kāi)發(fā)
- 查找我的iPhone的實(shí)現(xiàn)方法
- 你和后端服務(wù)器是怎么交互的
- 你是怎么分析Crash日志的
- 什么是method swizzing(俗稱(chēng)黑魔法)
- iOS7之前, 后臺(tái)執(zhí)行內(nèi)容有幾種形式?都是什么?
- 如何減小一個(gè)應(yīng)用程序的尺寸
- 解釋NSError, 在swift中, 什么情況下能用NSError, 什么情況下不能用?
- 迭代開(kāi)發(fā)中 你是怎么處理版本兼容問(wèn)題的
- 如何提高一個(gè)應(yīng)用程序的性能?
- svn git等版本控制工具有什么好處和注意點(diǎn)?
- APP上架后如何所及錯(cuò)誤信息?
- 不同版本的APP 數(shù)據(jù)庫(kù)變化了 如何處理
- 如何保證軟件質(zhì)量?