面試流程(個(gè)人總結(jié)):
- 面試人熱身的自我介紹,并且從中確認(rèn)面試人的一些經(jīng)歷是否屬實(shí)。
- 聊聊面試人的工作經(jīng)歷,項(xiàng)目,并從中了解面試人的大致技術(shù),表達(dá)溝通能力,及是否和我們想要的技術(shù),工作環(huán)境,價(jià)值觀吻合等等。
- 在大致了解完項(xiàng)目履歷后,可以進(jìn)行深入一點(diǎn)的專業(yè)技術(shù)的直接考量,可以看出面試者,是否技術(shù)過(guò)硬。
- 最后負(fù)責(zé)任的,讓面試者有個(gè)短暫了解我們公司環(huán)境,所接觸業(yè)務(wù)的時(shí)間,如果有意面試者,可以稍微說(shuō)說(shuō)我們的一些優(yōu)勢(shì),為爭(zhēng)取人才做一些加分!
- 總結(jié)面試過(guò)程中,面試者的表現(xiàn),優(yōu)點(diǎn)、缺點(diǎn)通過(guò)具體的問題,盡量寫仔細(xì)清楚。
下面是總結(jié)的一些iOS 的面試專業(yè)點(diǎn)(會(huì)根據(jù)情況,慢慢改進(jìn)完善):
中級(jí)題:
1. OC有多繼承嗎?沒有的話可以什么方法替代?
2. 屬性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那種情況下用?
3. 淺拷貝,深拷貝區(qū)別?copy和mutableCopy 在不可變對(duì)象和可變對(duì)象的使用時(shí)的注意點(diǎn)?
4. Objective-C如何對(duì)內(nèi)存管理的,說(shuō)說(shuō)你的看法和解決方法?
5. 原子(atomic)跟非原子(non-atomic)屬性有什么區(qū)別?
6. MVC設(shè)計(jì)模式是什么? 你還熟悉什么設(shè)計(jì)模式?
7. 類別和類擴(kuò)展的區(qū)別?類別能添加屬性嗎,如何添加?
高級(jí)題:
1、Objective-C 對(duì)象內(nèi)存結(jié)構(gòu)中的 isa 指針是用來(lái)做什么的,有什么用?
2. iOS 代理,通知,KVO, Block 之間的傳值功能區(qū)別?
3. KVC, KVO 的理解, 實(shí)現(xiàn)原理?
4. runloop 的理解,有幾種模態(tài),和線程有什么聯(lián)系?
5. runtime 機(jī)制,以及一般有哪些應(yīng)用?
6. tabelview 卡頓的一般原因,優(yōu)化方法?
7. OC中一般用到什么多線程技術(shù),之間有什么區(qū)別?
8. 假如Controller太臃腫,如何優(yōu)化?
9. OC中如何實(shí)現(xiàn)事件響應(yīng)和響應(yīng)者鏈?如何進(jìn)行事件透?jìng)???yīng)用有哪些?
10. 是否接觸過(guò)OC中的反射機(jī)制?簡(jiǎn)單聊一下概念和使用
進(jìn)階題:
1. 開發(fā)中使用block,什么情況下容易發(fā)生循環(huán)引用?是否所有的Block中使用self,都會(huì)導(dǎo)致循環(huán)引用?如何
避免 ?
2. block中如何訪問外部變量?外部變量有什么修飾符,都代表什么意義?
3. 說(shuō)說(shuō)你理解的埋點(diǎn)?,如何進(jìn)行無(wú)痕埋點(diǎn)?
算法題:
1、如何實(shí)現(xiàn)一個(gè)嵌套數(shù)組的迭代器?比如 NSArray 如果是 [1,[4,3],6,[5,[1,0]]], 則最終應(yīng)該輸出:1, 4, 3, 6, 5, 1, 0
更新待續(xù)。。。