今天早上參加了深圳OPPO開發工程師的技術面試,總的來講面試過程不是很順利。面試官並無問一些很深奧的底層原理,基本都是一些Java基礎以及Android四大組件內的基礎,可是我自身在開發過程當中並無很重視這些理論基礎,致使不少知識點都忘記了。整個面試過程耗時一小時,感謝兩位面試官不厭其煩地給我提示,一方面讓我可以回想起來那些遺忘的知識點,另外一方面也緩解了尷尬的氣氛。。。
順便一說,OPPO的保密工做仍是作得比較嚴格的,進去後海卓越中心大樓前須要申請臨時通行證才能進去。而在面試前還須要登記,而且把手機的先後攝像頭都給用膠帶封起來才能進行面試。廢話少說,下面分紅兩部分彙總一下此次技術面試的知識點。 面試
Java
- 如何理解Java的多態?其中,重載和重寫有什麼區別?
- 談一下JVM虛擬機內存分配?哪部分是線程公有的,哪部分是私有的?
- final關鍵字的用法?
- 死鎖是怎麼致使的?
- 數據庫如何進行升級?SQLite增刪改查的基礎sql語句
Android
- Broadcast的分類?有序,無序?粘性,非粘性?本地廣播?
- Touch事件是如何傳遞的?
- Handler的原理?
- ANR出現的狀況有幾種?怎麼分析解決ANR問題?
- 內存泄露的場景有哪些?內存泄漏分析工具使用方法?
- 如何實現啓動優化,有什麼工具可使用?
- 經常使用的設計模式有哪些?是否瞭解責任鏈模式?
總結
如今回顧一下,問的問題並不難,只是環環相扣問出了不少細節相關的知識點。由此看來,在平常開發中還須要注重基礎。尤爲對於開發經驗是1-5年內的Android Developer,面試官考察的多數是基礎知識是否牢固,溝通表達能力,總結能力。雖然這次面試黃了,但不失爲一次很好的經歷。sql
對於問題的答案,後面會抽時間整理總結,敬請期待。數據庫
2018-10-22更新:
關於問題的答案,已整理到我的的簡書。若有須要可移步查閱。設計模式