從2017年初到2019年底我先後面試了騰訊、阿里、美團、字節跳動、百度、滴滴共八次,騰訊和字節跳動面試過兩次、從Android測試崗面到開發崗,當然都失敗了,但是總結下來大廠面試的大體思路真的基本一致。比如:
Java相關知識
Android應用是由Java語言進行開發的,SDK也是由Java語言編寫,所以我們要學習java語言。而且Android apk的後臺服務器程序大概率是java語言構建,所以學習java也是一種必然。
那麼Java中哪些東西是我們Android程序員面試被經常問到的呢?像泛型,多線程,反射,JVM,Java IO,註解,序列化等都屬於我們面試高頻知識點。
Android相關知識
App開發框架知識體系(內含原理+源碼):阿里騰訊面試極其注重源碼分析,Binder、IPC、hander、SharedPrefrence 源碼和問題點
性能優化:解決過的一些性能問題,在項目中的實際運用,性能優化工具,性能優化(講講你自己項目中做過的性能優化)。
Android前沿技術:熱升級,熱修復,App Instant,強制更新,組件化路由架構Arouter,RxJava,IOC架構方法,Hook技術等等。
NDK 模塊開發:百度專注於人工智能 OpenCV/OpenGl/ 這些又是圖像處理必備知識,所以這部分知識是他們比較的,字節跳動的音視頻的編解碼技術,流媒體協議,ffmpeg這些都是音視頻開發面試必備技能。
當然NDK開發的前提,你需要掌握C/C++,jni,Linux等基礎。
設計模式
- 在Java中,重載和重寫
- 用過哪些設計模式
- 單例模式(靜態內部類);其他設計模式簡介
常用網絡協議
- HTTP響應的結構
- cookie定義、session和cookie區別
- TCP/IP在連接時有幾次握手、釋放時有幾次握手
- 是TCP協議定義、UDP協議定義、兩者區別
算法與數據結構部分
- 複雜度分析
- 數組
- 鏈表
- 堆
- 棧
- 隊列
- 散列表
- 樹
- 排序
- 查找
- 遞歸&回溯算法
- 貪心算法
- 其它有關算法與數據結構的面試題
混合開發
- Kotlin :協程
- Flutter :生命週期
- 項目:
- 項目介紹;項目中的編碼規範
- 項目開發中遇到的最大的一個難題和挑戰,如何解決。
- 開發優勢/能給公司帶來什麼效益
- 離開上家公司原因
- 性格缺點
- 未來的職業規劃
說了這麼多隻有一個重點,就是無論大廠他有沒有題庫,面試題的大體方向就這麼多,你要都掌握了,還擔心去大廠?
那麼重點就來了,怎麼複習呢?
首先你需要有一個知識點輪廓,對着這個輪廓不停的擴展、延伸,自己查漏補缺。因爲雖然知識點就這麼多,但是面試官的提問方式還是千奇百怪的,所以你需要通過知識點做相應的延伸,才能融會貫通。
道理其實大家都知道,但是實施起來就遇到了問題,所以這裏我推薦最簡單的方式:
腦圖 + 書 + 視頻
什麼意思呢?具體解釋一下,首先你需要有一個全面的知識點腦圖,然後遇到不懂的地方就看書,千萬不要去看博客,畢竟博客門檻真的太低了,最後要配合一些高質量的視頻,用來鞏固知識和開拓視野。
腦圖已經給你整理好了,可以根據這個圖自行進行查漏補缺和規劃:
Android高級面試進階學習需要的電子書也已經給你整理好了,可以文末查看下載方式:
視頻呢?也給你整理了,夠意思吧。
視頻包含:
1、IPC機制相關面試題視頻解析
2、項目相關視頻解析
3、性能優化相關面試題視頻解析
4、JVM從入門到着迷
5、源碼相關試題視頻解析
6、BAT面試總結分析
…
以上內容均放在了開源項目:【github】 中已收錄,大家可以自行獲取(或者關注主頁掃描加微信獲取)也可以【簡信】我獲取。