看看百度招iOS開發(fā)面試的問題舷丹,你能答對多少
1面
Objective C runtime library:Objective C的對象模型粱年,block的底層實現(xiàn)結(jié)構(gòu)慰丛,消息發(fā)送,消息轉(zhuǎn)發(fā)纺裁,這些都需要背后C一層的描述蜜自,內(nèi)存管理菩貌。
Core Data:中多線程中處理大量數(shù)據(jù)同步時的操作。
Multithreading:什么時候處理多線程重荠,幾種方式箭阶,優(yōu)缺點。
Delegate戈鲁, Notification仇参,KVO, other 優(yōu)缺點
runtime有一點追問婆殿,category诈乒,method 的實現(xiàn)機制,class的載入過程鸣皂。 1面整體感覺不錯抓谴,40分鐘不到暮蹂,感覺回答的還可以寞缝。被通知一會兒二面癌压。
2面
二面的時間非常長,差不多將近3個小時荆陆,直接面到快下班了滩届。1面問的主要是知識點。2面問主要考察的是設(shè)計解決方案的能力被啼,另外輔助追問的方式帜消,考察深度和廣度,回答過程中需要列出適合的具體例子浓体,方案還需要細致到具體的關(guān)鍵的函數(shù)名稱泡挺,方法。另外考察設(shè)計模式的理解命浴,最后還考了算法娄猫。因為時間太長,這里記錄一些重要的問題生闲。
設(shè)計一個progress bar解決方案媳溺,追問到 Core Graphic、CGPath碍讯、maskLayer悬蔽。
設(shè)計一個popup view被追問到 keyWindow、UIWindow的layer捉兴、UIView hierarchy蝎困。
從設(shè)計模式的角度分析Delegate、Notification倍啥、KVO的區(qū)別难衰。被追問到自己寫的library和開源的項目中用到哪些設(shè)計模式,為什么使用逗栽,有哪些好處和壞處盖袭,現(xiàn)在能否改進。
算是問題3的追問彼宠,設(shè)計一個方案來檢測KVO的同步異步問題鳄虱。willChange和 didChange的不同點,然后被追問到有沒有其他地方也有類似情況凭峡,被追問到Core Data 中falut object拙已。
這個是問題4的追問,設(shè)計一個KVO系統(tǒng)摧冀。
Multithreading倍踪,什么時候采用Multithreading方案系宫,以及理由。追問到系統(tǒng)還有哪些在后臺運行的thread建车,被追問到view life cycle扩借、iOS6之后的不同以及內(nèi)存管理。
Multithreading中常常遇到的問題缤至,追問到死鎖潮罪,優(yōu)先級翻轉(zhuǎn),線程池等领斥。
百度有一個億級別的APP需要統(tǒng)計用戶行為的日志系統(tǒng)嫉到。不使用數(shù)據(jù)庫,只是使用普通文件月洛,設(shè)計一個系統(tǒng)何恶。被追問到內(nèi)存映射文件。這個問題本來是服務(wù)器的問題嚼黔,我表示從來沒做過细层,回答很瞎。
算法考了2個隔崎。一個是如何求2個集合的交集今艺。另一個是百億數(shù)據(jù)中查找相同的數(shù)字以及出現(xiàn)的次數(shù)。
最后還補充了幾個小問題
自己對可穿戴設(shè)備的感受
自己如果進入這個team爵卒,自己準備做那方面的事情
為什么創(chuàng)業(yè)虚缎,自己未來規(guī)劃
一會被告知3面,但是因為太晚钓株,約到次日下午3面实牡。
3面
3面的時間和1面差不多40分鐘,問了幾個問題轴合,主要是考察精神層面的東西创坞。
為什么做Windows Mobile
為什么改iOS
為什么來百度
為什么iPhone 可以成功,那些吸引你
如何看待AppStore 現(xiàn)在的生態(tài)圈
后面就是他說的多一些受葛,介紹團隊遇到的困難以及14年團隊的打算题涨。最后他給了我2句話的評價,我覺得還是蠻對的总滩。
選擇的時候都是經(jīng)過深思熟慮的
有野心纲堵,wanna make a difference
有意思的是,他說他也wanna make a difference闰渔。
總結(jié)
整體還是挺尷尬的席函,幾乎所有的知識點都是1,2年前積累的冈涧,13年積累的東西基本上沒有茂附,都是一些虛的東西正蛙。 2面挺好的,暴露了自己不少問題营曼,設(shè)計模式那部分幾乎沒有概念了乒验。
最后
面試通過,我個人覺得2面我的問題在思考設(shè)計模式上面少溶推,另外在window hierarchy 上面有不足徊件。設(shè)計 KVO 上面在 didChange上面考慮不足奸攻。這些都是被當場戳穿的蒜危。 有一點疑慮的是整個面試中并沒有問到Core Animation。這個還是我蠻喜歡的部分睹耐。Anyway 個人很喜歡追問的方式辐赞,很容易考察出來理解的深度和廣度。
整個面試收獲很大硝训,發(fā)現(xiàn)了很多不足响委。另外1,2面的面試題目個人覺得也不錯窖梁。這里分享給大家赘风。