OPPO Android開發技術面總結

LiveForYourself發表於2018-10-15
       今天早上參加了深圳OPPO開發工程師的技術面試,總的來說面試過程不是很順利。面試官並沒有問一些很深奧的底層原理,基本都是一些Java基礎以及Android四大元件內的基礎,但是我自身在開發過程中並沒有很重視這些理論基礎,導致很多知識點都忘記了。整個面試過程耗時一小時,感謝兩位面試官不厭其煩地給我提示,一方面讓我能夠回想起來那些遺忘的知識點,另一方面也緩解了尷尬的氣氛。。。

   順便一說,OPPO的保密工作還是做得比較嚴格的,進去後海卓越中心大樓前需要申請臨時通行證才能進去。而在面試前還需要登記,並且把手機的前後攝像頭都給用膠帶封起來才能進行面試。廢話少說,下面分成兩部分彙總一下這次技術面試的知識點。   

Java

  1. 如何理解Java的多型?其中,過載和重寫有什麼區別?
  2. 談一下JVM虛擬機器記憶體分配?哪部分是執行緒公有的,哪部分是私有的?
  3. final關鍵字的用法?
  4. 死鎖是怎麼導致的?
  5. 資料庫如何進行升級?SQLite增刪改查的基礎sql語句

Android

  1. Broadcast的分類?有序,無序?粘性,非粘性?本地廣播?
  2. Touch事件是如何傳遞的?
  3. Handler的原理?
  4. ANR出現的情況有幾種?怎麼分析解決ANR問題?
  5. 記憶體洩露的場景有哪些?記憶體洩漏分析工具使用方法?
  6. 如何實現啟動優化,有什麼工具可以使用?
  7. 常用的設計模式有哪些?是否瞭解責任鏈模式?

總結

       現在回顧一下,問的問題並不難,只是環環相扣問出了很多細節相關的知識點。由此看來,在日常開發中還需要注重基礎。尤其對於開發經驗是1-5年內的Android Developer,面試官考察的多數是基礎知識是否牢固,溝通表達能力,總結能力。雖然此次面試黃了,但不失為一次很好的經歷。

     對於問題的答案,後面會抽時間整理總結,敬請期待。

2018-10-22更新:

關於問題的答案,已整理到個人的簡書。如有需要可移步查閱。




相關文章