做爲面試官如何從深度和廣度上考察面試者

版權申明:本文由知識星球《魚哥星球圈》版權全部。未經許可,不得以任何形式轉載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回收策略

固然遠遠不止這些基礎。多線程

歡迎關注個人微信公衆號「碼農突圍」,音視頻、多媒體技術乾貨
相關文章
相關標籤/搜索