2017.06.12更新:
要謎底的伴侶比我想象的要多,這些題的謎底我并沒有特意花時辰清算好舞肆,由于給出謎底并不在我的原方案之內嚷往,可是還請列位理解一下我小我的時辰放置。
本文中的面試題在網(wǎng)上都斗勁隨意搜的到粘驰,并且有些問題問題來自于ChenYilong/iOSInterviewQuestions屡谐。
若是在時辰和排期容許的情形下我必定會奉告大師出一份謎底的。感激理解蝌数!
就在上個月中旬愕掏,手藝老邁讓我招兩個1-2年的iOS開發(fā),把簡歷的挑選和第一輪手藝面試的使命交給了我顶伞。
從挑選第一份簡歷饵撑,預備面試題,到成功招到兩小我一共花了兩個禮拜多一點唆貌,總體來說仍是斗勁順遂的滑潘。兩位經(jīng)由過程者都斗勁穩(wěn)重結壯,并且敵手藝也斗勁有尋求锨咙。這也可能和我挑選簡歷斗勁謹嚴有關系语卤,此次挑選簡歷所破耗的精神是不比面試破耗的少的。
雖然時辰跨度不是很長酪刀,可是現(xiàn)實了局是第一次粹舵,所以有些感應,想總結出來分享給大師蓖宦。這篇總結分為兩個局部:
第一局部是我那時預備的面試題
第二局部是我的心得
我重點在本文的第二局部說一下此次面試別人的心得體味齐婴。而關于第一局部的面試題,文中不供給謎底(由于不是本文的重點)稠茂,有想會談的接待在評論區(qū)留言柠偶。
第一局部:面試題
注意情妖,下面這些題只是我預備的題庫。在實際面試的時辰我會按照面試者的程度抽出相應的問題問題來出的诱担。
手藝
根本
為什么說Objective-C是一門動態(tài)的說話毡证?
講一下MVC和MVVM,MVP蔫仙?
為什么代庖署理要用weak料睛?代庖署理的delegate和dataSource有什么區(qū)別?block和代庖署理的區(qū)別?
屬性的本質是什么摇邦?網(wǎng)羅哪幾個局部恤煞?屬性默認的關頭字都有哪些?@dynamic關頭字和@synthesize關頭字是用來做什么的施籍?
屬性的默認關頭字是什么居扒?
NSString為什么要用copy關頭字,若是用strong會有什么問題丑慎?(注意:這里沒有說用strong就必定不行喜喂。使用copy和strong是看情形而定的)
若何令本身所寫的工具具有拷貝功能?
可變集結類 和 不成變集結類的 copy 和 mutablecopy有什么區(qū)別?若是是集結是內容復制的話竿裂,集結里面的元素也是內容復制么玉吁?
為什么IBOutlet潤飾的UIView也合用weak關頭字?
nonatomic和atomic的區(qū)別腻异?atomic是絕對的線程安然么进副?為什么?若是不是捂掰,那應該若何實現(xiàn)敢会?
UICollectionView自界說layout若何實現(xiàn)?
用StoryBoard開發(fā)界面有什么弊端这嚣?若何按捺鸥昏?
歷程和線程的區(qū)別?同步異步的區(qū)別姐帚?并行和并發(fā)的區(qū)別吏垮?
線程間通信?
GCD的一些常用的函數(shù)罐旗?(group膳汪,barrier,旌旗暗號量九秀,線程同步)
若何使用行列來按捺資源掠纫潘浴?
數(shù)據(jù)長期化的幾個方案(fmdb用沒用過)
說一下AppDelegate的幾個編制鼓蜒?從后臺到前臺挪用了哪些編制痹换?第一次啟動挪用了哪些編制征字?已經(jīng)臺到后臺挪用了哪些編制?
NSCache優(yōu)于NSDictionary的幾點娇豫?
知不曉得Designated Initializer匙姜?使用它的時辰有什么必要注意的問題?
實現(xiàn)description編制能取到什么了局冯痢?
objc使用什么機制辦理工具內存氮昧?
中級
Block
block的本質是什么?一共有幾種block浦楣?都是什么情形下生成的袖肥?
為什么在默認情形下無法改削被block捕捉的變量? __block都做了什么振劳?
模仿一下輪回引用的一個情形昭伸?block實現(xiàn)界面反向傳值若何實現(xiàn)?
Runtime
objc在向一個工具發(fā)送消息時澎迎,產(chǎn)生了什么?
什么時辰會報unrecognized selector錯誤选调?iOS有哪些機制來按捺走到這一步夹供?
能否向編譯后獲得的類中添加實例變量?能否向運轉時建樹的類中添加實例變量仁堪?為什么哮洽?
runtime若何實現(xiàn)weak變量的主動置nil?
給類添加一個屬性后弦聂,在類構造體里哪些元素會產(chǎn)生變化鸟辅?
RunLoop
runloop是來做什么的?runloop和線程有什么關系莺葫?主線程默認開啟了runloop么匪凉?子線程呢?
runloop的mode是用來做什么的捺檬?有幾種mode再层?
為什么把NSTimer工具以NSDefaultRunLoopMode(kCFRunLoopDefaultMode)添加到主運轉輪回往后,滑動scrollview的時辰NSTimer卻不動了堡纬?
蘋果是若何實現(xiàn)Autorelease Pool的聂受?
類構造
isa指針?(工具的isa烤镐,類工具的isa蛋济,元類的isa都要說)
類編制和實例編制有什么區(qū)別?
引見一下分類炮叶,能用分類做什么碗旅?內部是若何實現(xiàn)的渡处?它為什么會籠蓋掉本來的編制?
運轉時能添加成員變量么扛芽?能添加屬性么骂蓖?若是能,若何添加川尖?若是不能登下,為什么?
objc中向一個nil工具發(fā)送消息將會產(chǎn)生什么叮喳?(前往值是工具被芳,是標量,構造體)
高級
UITableview的優(yōu)化編制(緩存高度馍悟,異步繪制畔濒,減少層級,hide锣咒,按捺離屏襯著)
有沒有效過運轉時侵状,用它都能做什么?(交流編制毅整,建樹類趣兄,給新建樹的類添加編制,改變isa指針)
看過哪些第三方框架的源碼悼嫉?都是若何實現(xiàn)的艇潭?(若是沒有,問一下多圖下載的設計)
SDWebImage的緩存計策戏蔑?
AFN為什么添加一條常駐線程蹋凝?
KVO的使用?實現(xiàn)事理总棵?(為什么要建樹子類來實現(xiàn))
KVC的使用鳍寂?實現(xiàn)事理?(KVC拿到key往后彻舰,是若何賦值的伐割?知不曉得集結把持符,能不能訪謁私有屬性刃唤,能不能直接訪謁_ivar)
項目
有已經(jīng)上線的項目么隔心?
項目里哪個局部是你完成的?(找一個亮點問一下若何實現(xiàn)的)
開發(fā)過程中碰著過什么堅苦尚胞,是若何處理的硬霍?
進修
碰著一個問題完全不能理解的時辰,是若何副手本身理解的笼裳?舉個例子唯卖?
有看書的習慣么粱玲?比來看的一本是什么書?有什么心得拜轨?
有沒有使用一些筆記軟件抽减?會在多平臺同步以及多渠道網(wǎng)羅么?(若是沒有橄碾,問一下是若何復習知識的)
有沒有使用清單類卵沉,日歷類的軟件?(若是沒有法牲,問一下是若何放置史汗,方案使命的)
泛泛看博客么?有沒有本身寫過拒垃?(若是寫停撞,有哪些收成?若是沒有寫悼瓮,問一下不寫的緣故緣由)
有關手藝類的問題可以在評論區(qū)留言戈毒,我重點說一下這輪面試的心得和體味。
第二局部:心得
面試者萬萬不要答非所問
若是讓我選一個讓面試官感受印象減分的點横堡,答非所問應該是首當其沖的副硅。
面試者必定要曉得面試官問的點是什么。
若是在曉得面試官問的點翅萤,可是本身卻不曉得謎底的時辰,可以提出思緒腊满,思慮過程套么。其實有幾回面試者在我的引導下很隨意就把謎底說出來了,認清問題的點是處理問題的一半碳蛋。
若是沒有理解好面試官問的問題胚泌,必定要事先和面試官確認好。
其實這也屬于溝通才能的一點:若是不能保證和對方溝通內容的同等性肃弟,本身弄個filter把對方的話都曲解了玷室,往后合作的時辰又怎能保證溝通好呢?
面試者必定不要來得太早
這里說的來得太早笤受,是來得太早并奉告面試官本身已經(jīng)來了穷缤。
由于在商定好的面試時辰之前,往往面試官還有別的工作在做箩兽,若是他曉得你來的很早津肛,就可能會侵擾他的方案。現(xiàn)在是互聯(lián)網(wǎng)的時代汗贫,利用互聯(lián)網(wǎng)一部手機住家創(chuàng)業(yè)簡單輕松月入幾萬身坐,手把手教你成功摳我了解詳情一柒五柒二叁叁叁柒五寧可明明白白的放棄秸脱,也不要稀里糊涂錯過 有一位面試者早來了1個小時,成效把我們的面試方案打亂了部蛇,并且恰好是我的第一次面試摊唇,所以真的是有點措手不及。
求職者和公司定下來的時辰屬于一個商定涯鲁,商定是要服從的巷查。并且服從商定同樣也是對對方的恭敬。若是入職之前都沒能把握好撮竿,入職之后又若何能保證把握好呢吮便?
理論與理論的脫節(jié),讓人很不安
能做出來項目幢踏,可是根本知識很虧弱
幾乎每位面試者都能給我展現(xiàn)他做的一些app髓需,雖然沒有很難的功能,但也都算是有板有眼房蝉×糯遥可讓我斗勁不測的是,雖然能做出有模有樣的app搭幻,但當我問到良多根本的問題的時辰卻答不上來咧擂,比如屬性和成員變量的區(qū)別,屬性的默認關頭字檀蹋,Designated Initializer的概念等等松申。。
這不由讓我思疑他們的代碼的不變性俯逾,更思疑他們治學贸桶,做手藝的立場。
雖說手藝活必要理論的考驗桌肴,但和理論脫節(jié)的手藝是鉆不深的皇筛。可能有人會說我的面試題過于理論坠七,實際中用不到水醋。但有些時辰,在實際開發(fā)中碰著的一些問題往往就是由于一些很根基的工具沒有弄清導致的彪置,信托你我都深有體味拄踪。
并且,我們都曉得手藝的晉升是階梯式的拳魁。什么是階梯式的呢宫蛆?就是可能我們會有斗勁長的時辰才會有一個沖破。但這個沖破來的有多快,晉升的有多高耀盗,是跟日常平常每個藐小知識點的把握程度是分不開的想虎。
由于知識也是有復利效應的,切確地把握越多的知識點叛拷,在往后的進修過程中舌厨,這些知識點互相之間想成的積極浸染會越來越大:對新知識的理解更快,對問題的定位會更準忿薇,處理問題的編制也會越多裙椭。相反,若是你每個問題都茍且偷生署浩,這些成效的復合浸染就會導致你今后很難會有所沖破了揉燃。
真的可能被簡歷騙到
上家的薪資很高,可是實際才能很不符
有一位面試者在簡歷里號稱上一個工作拿了15k筋栋,但當我問到NSString屬性使用strong仍是copy作為關頭字的時辰他說是strong炊汤,并且用copy和strong的區(qū)別也不清楚,甚至連delegate都拿禁絕使用strong仍是weak弊攘,我就有些奇異了抢腐。
看手藝博客和手藝書籍的人仍是很少的
只依靠于公司里的項目應該是不夠的,現(xiàn)實了局不是每個公司里都有上乘的代碼和手藝
面試了概略20小我襟交,可是真正有看過手藝博客和手藝書籍的真的不多迈倍,更別提Github了。不外其中一位面試經(jīng)由過程者是有github賬號的捣域,并且有幾個小項目啼染,印象很是好,加了不少分焕梅。
我信托在這一行的將來提完,簡歷里面github賬號和博客絕對會越來越受正視:
一方面簡歷真的是應接不暇,并且同時陳腐看法丘侠,很難找出亮點。
另一方面逐样,若是可以把本身的代碼和生長展現(xiàn)給雇用公司蜗字,就會使得本身的才能在公司面前變得加倍純粹和通明,更有助于找到合適你本身的公司脂新。
以上就是我上個月的面試心得挪捕,希望大師多交流,有說的不合錯誤的地方還請多匡正争便。
本篇已經(jīng)同步到小我博客:傳送門
本文已在版權印備案级零,如需轉載請訪謁版權印。48422928