百度iOS面試

一面 (40min)

  1. 屬性關鍵字:atomic、nonatomic、strong、weak、assign、copy、retain、readOnly、readWrite(建議解釋一下各個關鍵詞,而且說明一下怎麼使用及其使用的坑點),readOnly和readWrite怎麼使用,weak的實現原理
  2. block用什麼關鍵字修飾,用copy和strong有什麼區別,對block有什麼瞭解,對block引用循環有什麼瞭解,__strong什麼狀況下使用
  3. 對ARC有什麼瞭解,ARC的引用計數加一和減一怎麼實現的(該問題還能夠延伸:編寫ARC和MRC狀況下一個屬性的set和get方法)
  4. 對KVO和KVC有什麼瞭解。KVO的實現機制以及怎麼使用的,若是直接修改爲員變量進行KVO會怎樣,什麼狀況會觸發KVO,「=」賦值和KVC賦值會觸發KVO麼(經過willChangeValueForKey和didChangeValueForKey方法觸發)? KVC有那些方法,日常怎麼使用的?
  5. 對runtime有什麼瞭解,有怎麼使用runtime機制(該問題能夠延伸提問iOS各類運行時使用的底層原理)
  6. __block有什麼瞭解,怎麼用,實現原理是什麼(實現原理不記得了)
  7. 編程題:尋找兩個view的最近公共父視圖
  8. UIView和CALayer有了解多少(由於瞭解的很少,因此沒有接下來的問題)

······一面問題有近二十個,都是基礎問題,最好不要答錯或答不出來,我感受答對了8成左右吧,面試官不是很滿意······面試

二面 (30min)

  1. 先簡單自我介紹
  2. 單例的實現有幾種(只知道GCD的實現方式,汗顏)
  3. 多線程有幾種實現(NSTread,GCD,NSOperation),分別有什麼區別。項目中有用到那些多線程(還會針對你的回答進行深刻討論)
  4. 如何對tableView滑動卡頓進行優化,對於微博的tableView的優化有什麼想法
  5. 有遇到哪些崩潰,都是怎麼解決的
  6. 死鎖?怎麼解決
  7. 有接觸過動畫麼,對coreAnimation有了解麼(由於沒怎麼接觸過動畫,因此也就不知道接下來會問什麼)
  8. 項目中能夠拿出手的東西

······其實一面二面還有一些題目,當時比較緊張不太記得了(明明搜狐的面試都很淡定的)······編程

結論

一面就是一些基礎知識,只有有準備,基本都能答上來,二面則會深刻一些。面試結束,面試官說領導不在,讓我回去等消息(潛臺詞就是你以及掛了,快走吧)。感受基礎知識仍是有些沒答上來,後面多積累吧。綜合來講,百度的面試比搜狐的面試質量高多了,會細緻考察基礎知識,也會考察具體項目的細節,對我的技術積累和思考能力的測試很全面。百度不愧是大廠,面試仍是有水平的,通常人進不去。很惋惜面試沒過,之後再接再礪吧,爭取兩年後再去百度面試(在此立貼爲證)多線程

相關文章
相關標籤/搜索