金三月、銀四月,過年回來是跳槽的高峰期,不安分的小編也投了幾家,想換個工作,換個環境。兩個星期來,面了四家公司,現在將面試內容整理與大家分享。
某知名線上教育公司
- VideoView、ExoPlayer、IjkPlayer和Vitamio這幾種主流播放器的比較;
- 垃圾回收機制,JVM記憶體分配、如何判定物件可回收;
- 演算法:n(很大)個無序數中找最大的10個數;
- 談談記憶體優化;
- 如何反編譯,對程式碼逆向分析;
- 自定義View流程,主要的方法及各自作用;
- 如何防止過度繪製;
- LruCache原理;
- 事件分發及舉例說明;
- 混合開發用過哪些框架,自己又是如何處理、封裝的;
- 介紹一個你所瞭解的開源框架及原理;
- 談談對http快取的瞭解。
某知名網路問答社群
- 安卓中方法數不能超過64k的原因,及如何處理;
- Intent傳值有大小限制嗎,為什麼,如何處理;
- 如何實現圓形ImageView;
- 說說動態代理的作用;
- 註解;
- 對數字進行或計算;
- 對View中的onMesurse方法的詳細介紹和使用;
- 如何自己實現RecyclerView的側滑刪除;
- TabLayout中如何讓當前標籤永遠位於螢幕中間;
- 垃圾回收機制;
- Activity跳轉時的生命週期問題;
- LruCache和DisLruCache的原理;
- EventBus原理;
- 執行緒池的引數和工作原理;
- 對js互調如何使用,做過什麼優化;
- 演算法:歸併排序
某知名直播平臺
- 手寫程式碼:遍歷檔案目錄;
- 電梯執行的演算法分析;
- 談談自己專案的架構,如何優化;
- 演算法:手寫氣泡排序;
- ijkPlayer播放器原始碼;
- 視訊播放器的手勢控制如何處理;
- ArrayList、Vector、LinkedList的區別;
- 遇到過哪些關於Fragment的問題;
- 圖片的處理和優化;
- Android實現非同步的幾種方式;
- JVM垃圾回收機制;
- 如何對Android應用進行效能分析;
- 介紹一個你比較欣賞的app或者開源框架。
某知名視訊播放公司
- 自定義View流程;
- MVP的優點與確點;
- ClassLoader的雙親委派;
- 手寫實現單連結串列的get操作;
- 用過哪些外掛化方案;
- 圖片處理和快取;
- 生產者、消費者模式;
- 如何對應用進行效能優化;
- 64k出現的原因及如何解決;
- 對ART的認識;
- 動態代理的作用;
- Retrofit和EventBus的原始碼分析;
- EventBus如何做到黏性傳送的;
- TextView呼叫setText方法的內部執行流程;
- 對執行緒池的認識和它的幾個子類;
很幸運,小編拿到了其中兩家的offer(就不具體透露了)。
通過這幾天的面試經歷,有幾點感想:
-
大廠面試,一般不會問某一個具體功能如何實現;
-
大廠更重視基礎;
-
資料結構和演算法真的是非常重要,是日常工作和麵試的基礎;
-
我們應該多看原始碼,瞭解內部流程,而不只是停留在會使用上;
將這兩週面試的內容與感想與大家分享,希望能對大家有所幫助。
更多精彩內容,歡迎關注我的微信公眾號——Android機動車