版權申明:本文由知識星球《魚哥星球圈》版權全部。未經許可,不得以任何形式轉載android
若是是作Android應用開發,做爲面試官通常從深度和廣度以及項目關鍵點來進行提問.面試
通常有深度面試官會進行深挖,看你能到哪層,好比:面試官問經常使用數據結構有哪些?Java中你用過哪些集合類?數組
- 層次一:數據結構有哪些,數組,鏈表,樹,圖,表
- 層次二: ArrayList 和 LinkedList 用的是哪種?數組,鏈表
- 層次三: HashMap 的原理,get方法和put方法區別?如何解決Hash衝突。散列列表
- 層次四: HashMap(5) 長度是多少?
- 層次五: 爲何是 2 的冪次,各個版本之間的區別
- 層次五:ConcurrentHashMap有用過麼?和HashMap區別是什麼?
再舉例一個,我常常回問的問題:安全
- 層次一:進程和線程有什麼區別?
- 層次二:線程有哪幾種狀態
- 層次三:Java中多線程有用過麼?線程安全怎麼理解?Volatile關鍵字有用過麼?是線程安全的麼?爲何?和synchronized有什麼區別?
- 層次四:Java中用過哪些鎖?lock和synchronized有什麼區別?
- 層次五:給你一個兩個線程,線程1打印‘A’,線程2打印‘B’,按順序輸出ABABAB...,寫個僞代碼或是思路。
若是是廣度上,相似就是從 Java基礎:基礎概念,集合框架,內存模型,多線程,GC回收機制及策略 Android基礎:動畫,自定義View,事件分發,四大組件的瞭解,AIDL,Binder通訊等性能優化
專題方向:微信
- 一、如簡歷有寫插件化,模塊化,組件化開發,像我必問原理,過程,組件之間如何通訊,
- 二、如簡歷有寫性能優化,從內存優化,渲染優化,電量優化,網絡優化方向問實際中遇到的問題和解決手段,包括使用具體的工具名字。
- 三、如簡歷有寫作過NDK/JNI開發,必問虛函數,虛析構,Java如何傳數據給JNI。 JNI有哪幾種種引用?局部引用、全局引用、弱全局引用區別?怎麼釋放引用?是否是必定要釋放引用?
- 四、如簡歷有過音視頻開發,這個問的就不少了,後續總結。
若是是作AndroidFrameWork開發,主要從深度上考察。網絡
舉例一些基礎面試題以下:數據結構
- LRUCache原理
- 圖片加載原理
- 模塊化實現(好處,緣由)
- JVM
- 視頻加密傳輸
- 統計啓動時長,標準
- 如何保持應用的穩定性
- ThreadLocal 原理
- 談談classloader
- 動態佈局
- 熱修復,插件化
- HashMap源碼,SpareArray原理
- 性能優化,怎麼保證應用啓動不卡頓
- 怎麼去除重複代碼SP是進程同步的嗎?有什麼方法作到同步
- 介紹下SurfaceView
- HashMap實現原理,ConcurrentHashMap 的實現原理
- BroadcastReceiver,LocalBroadcastReceiver 區別
- Bundle 機制Handler 機制
- android 事件傳遞機制
- 線程間 操做 List
- App啓動流程,從點擊桌面開始
- 動態加載
- 類加載器
- OSGI
- Https請求慢的解決辦法,DNS,攜帶數據,直接訪問IP
- GC回收策略
固然遠遠不止這些基礎。多線程
歡迎關注個人微信公衆號「碼農突圍」,音視頻、多媒體技術乾貨