分享這兩週的面試經歷 | 掘金技術徵文

Android機動車發表於2018-03-26

金三月、銀四月,過年回來是跳槽的高峰期,不安分的小編也投了幾家,想換個工作,換個環境。兩個星期來,面了四家公司,現在將面試內容整理與大家分享。

某知名線上教育公司

  1. VideoView、ExoPlayer、IjkPlayer和Vitamio這幾種主流播放器的比較;
  2. 垃圾回收機制,JVM記憶體分配、如何判定物件可回收;
  3. 演算法:n(很大)個無序數中找最大的10個數;
  4. 談談記憶體優化;
  5. 如何反編譯,對程式碼逆向分析;
  6. 自定義View流程,主要的方法及各自作用;
  7. 如何防止過度繪製;
  8. LruCache原理;
  9. 事件分發及舉例說明;
  10. 混合開發用過哪些框架,自己又是如何處理、封裝的;
  11. 介紹一個你所瞭解的開源框架及原理;
  12. 談談對http快取的瞭解。

某知名網路問答社群

  1. 安卓中方法數不能超過64k的原因,及如何處理;
  2. Intent傳值有大小限制嗎,為什麼,如何處理;
  3. 如何實現圓形ImageView;
  4. 說說動態代理的作用;
  5. 註解;
  6. 對數字進行或計算;
  7. 對View中的onMesurse方法的詳細介紹和使用;
  8. 如何自己實現RecyclerView的側滑刪除;
  9. TabLayout中如何讓當前標籤永遠位於螢幕中間;
  10. 垃圾回收機制;
  11. Activity跳轉時的生命週期問題;
  12. LruCache和DisLruCache的原理;
  13. EventBus原理;
  14. 執行緒池的引數和工作原理;
  15. 對js互調如何使用,做過什麼優化;
  16. 演算法:歸併排序

某知名直播平臺

  1. 手寫程式碼:遍歷檔案目錄;
  2. 電梯執行的演算法分析;
  3. 談談自己專案的架構,如何優化;
  4. 演算法:手寫氣泡排序;
  5. ijkPlayer播放器原始碼;
  6. 視訊播放器的手勢控制如何處理;
  7. ArrayList、Vector、LinkedList的區別;
  8. 遇到過哪些關於Fragment的問題;
  9. 圖片的處理和優化;
  10. Android實現非同步的幾種方式;
  11. JVM垃圾回收機制;
  12. 如何對Android應用進行效能分析;
  13. 介紹一個你比較欣賞的app或者開源框架。

某知名視訊播放公司

  1. 自定義View流程;
  2. MVP的優點與確點;
  3. ClassLoader的雙親委派;
  4. 手寫實現單連結串列的get操作;
  5. 用過哪些外掛化方案;
  6. 圖片處理和快取;
  7. 生產者、消費者模式;
  8. 如何對應用進行效能優化;
  9. 64k出現的原因及如何解決;
  10. 對ART的認識;
  11. 動態代理的作用;
  12. Retrofit和EventBus的原始碼分析;
  13. EventBus如何做到黏性傳送的;
  14. TextView呼叫setText方法的內部執行流程;
  15. 對執行緒池的認識和它的幾個子類;

很幸運,小編拿到了其中兩家的offer(就不具體透露了)。

通過這幾天的面試經歷,有幾點感想:

  • 大廠面試,一般不會問某一個具體功能如何實現;

  • 大廠更重視基礎;

  • 資料結構和演算法真的是非常重要,是日常工作和麵試的基礎;

  • 我們應該多看原始碼,瞭解內部流程,而不只是停留在會使用上;

將這兩週面試的內容與感想與大家分享,希望能對大家有所幫助。

更多精彩內容,歡迎關注我的微信公眾號——Android機動車

這裡寫圖片描述

相關文章