3年的工程師在技術(shù)面時(shí)面試官最看重的有哪些?
相對(duì)于小公司只要能實(shí)現(xiàn)功能就行,對(duì)于BAT這類(lèi)型大廠(chǎng)來(lái)說(shuō),他們不僅注重項(xiàng)目情況、上家公司的產(chǎn)品情況,更看重基礎(chǔ)能力,考察你的學(xué)習(xí)能力,是否有讀過(guò)源碼,了解其內(nèi)部實(shí)現(xiàn)原理,有沒(méi)有寫(xiě)過(guò)博客、github之類(lèi)的。通常他們的問(wèn)題是不會(huì)固定的,是根據(jù)你回答的情況再進(jìn)行后面的提問(wèn),直到你回答不出才會(huì)結(jié)束這個(gè)題目,環(huán)環(huán)相扣,真的不準(zhǔn)備段時(shí)間,你會(huì)發(fā)現(xiàn)自己只能回答表層的答案。除了筆試,他們的技術(shù)面試一般都是要進(jìn)行幾輪的,第一輪是項(xiàng)目情況的了解,第二輪是基礎(chǔ)和源碼深入的提問(wèn),第三輪是項(xiàng)目負(fù)責(zé)人或者技術(shù)總監(jiān),第四輪是HR面,通常到了HR面就證明你的技術(shù)面是過(guò)關(guān)了,離拿offer不遠(yuǎn)。
下面是某次面試大廠(chǎng)面試問(wèn)的的問(wèn)題,因?yàn)楸救藦氖碌氖茿ndroid開(kāi)發(fā),所以問(wèn)的基本都是一些Java基礎(chǔ)以及Android四大組件內(nèi)的基礎(chǔ),但是我自身在開(kāi)發(fā)過(guò)程中并沒(méi)有很重視這些理論基礎(chǔ),導(dǎo)致很多知識(shí)點(diǎn)都忘記了。整個(gè)面試過(guò)程耗時(shí)一小時(shí),感謝兩位面試官不厭其煩地給我提示,一方面讓我能夠回想起來(lái)那些遺忘的知識(shí)點(diǎn),另一方面也緩解了尷尬的氣氛。
Java方面
1、如何理解Java的多態(tài)?其中,重載和重寫(xiě)有什么區(qū)別?
2、談一下JVM內(nèi)存區(qū)域劃分?哪部分是線(xiàn)程公有的,哪部分是私有的?
3、final關(guān)鍵字的用法?
4、死鎖是怎么導(dǎo)致的?如何定位死鎖?
5、數(shù)據(jù)庫(kù)如何進(jìn)行升級(jí)?SQLite增刪改查的基礎(chǔ)sql語(yǔ)句?
Android方面
1、Broadcast的分類(lèi)?有序,無(wú)序?粘性,非粘性?本地廣播?
2、Android中的事件傳遞機(jī)制?
3、Handler的原理?
4、ANR出現(xiàn)的情況有幾種? 怎么分析解決ANR問(wèn)題?
5、內(nèi)存泄露的場(chǎng)景有哪些??jī)?nèi)存泄漏分析工具使用方法?
6、如何實(shí)現(xiàn)啟動(dòng)優(yōu)化,有什么工具可以使用?
7、常用的設(shè)計(jì)模式有哪些?是否了解責(zé)任鏈模式?
現(xiàn)在回顧一下,總的來(lái)說(shuō),問(wèn)的問(wèn)題并不難,只是環(huán)環(huán)相扣問(wèn)出了很多細(xì)節(jié)相關(guān)的知識(shí)點(diǎn)。由此看來(lái),在日常開(kāi)發(fā)中還需要注重基礎(chǔ)。尤其對(duì)于開(kāi)發(fā)經(jīng)驗(yàn)是1-3年內(nèi)的Android Developer,面試官考察的多數(shù)是基礎(chǔ)知識(shí)是否牢固,溝通表達(dá)能力,總結(jié)能力以及代碼理解能力和學(xué)習(xí)能力。
好了,以上就是我的回答,希望能幫助到有需要的小伙伴。我是@每日三金說(shuō),如果覺(jué)得回答不錯(cuò)可以手動(dòng)點(diǎn)個(gè)贊亦或是關(guān)注我哦。