百度移動云可穿戴部門的面試經(jīng)歷溅固,面試官都非常熱情友好,一上來到弄的我挺不好意思的兰珍。下面記錄一下自己的面試過程侍郭,因為我真的沒啥面試經(jīng)驗,需要總結(jié)下掠河。
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)機(jī)制,class的載入過程蟹演。 1面整體感覺不錯风钻,40分鐘不到,感覺回答的還可以酒请。被通知一會兒二面骡技。
2面
二面的時間非常長,差不多將近3個小時,直接面到快下班了布朦。1面問的主要是知識點囤萤。2面問主要考察的是設(shè)計解決方案的能力,另外輔助追問的方式是趴,考察深度和廣度涛舍,回答過程中需要列出適合的具體例子,方案還需要細(xì)致到具體的關(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)在能否改進(jì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è)備的感受
- 自己如果進(jìn)入這個team,自己準(zhǔn)備做那方面的事情
- 為什么創(chuàng)業(yè)窟她,自己未來規(guī)劃
一會被告知3面陈症,但是因為太晚,約到次日下午3面震糖。