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