面試經驗帖

面經

   創個帖子,總結下最近面試的公司的一些面試題,希望能對現在正在找工作的朋友有幫助,會不斷更新。

常見問題:

java:

  1. java面對對象思想
  2. java類加載機制:加載過程,類加載器等
  3. java內存模型,堆,棧,方法區等的用途
  4. java垃圾回收機制,回收算法以及引用算法
  5. java多線程,多線程方式等
  6. 線程池,參數的意義,有幾種線程池
  7. 同步中volatile, synchronized, lock的作用以及區別
  8. 同步的方式有哪些?同步包的使用
  9. java中信號量的使用
  10. 線程的運行狀態,在代碼中如何進行把控?
  11. ArrayList,Vector,LinkedList,Hashmap, Hashtable,Treeset,Treemap,Blockingqueue等集合的實現原理以及它的衍生物。
  12. 平常使用的數據結構模型有哪些,各有什麼用處,不同點。
  13. java內存泄漏以及解決方式
  14. final,static的作用以及原理
  15. Java內部類與外包類的關係,非靜態的與靜態的區別
  16. java中的異常分類,處理方式
  17. 鏈表反轉,二叉樹求高度
  18. 排序的方式,解釋思路
  19. 接口與抽象的區別
  20. 死鎖的原因,怎麼避免
  21. java中的類,所有類加載器都沒加載,是被什麼所加載

Android:

  1. handler機制,handler, looper, messengequeue, messenge, threadloacl的關係,最好能從源碼的角度去分析。
  2. Android中多線程的使用方式,區別
  3. Android性能優化,內存、冷熱啓動、卡頓、過度繪製、Apk瘦身等問題工具的使用,舉些例子
  4. Android 四大組件的使用、生命週期,原理等
  5. Activity的啓動模式,區別
  6. Activity棧的結構
  7. Activity的啓動流程
  8. Android事件分發機制,三個方法,還有一些細節要注意
  9. ListView嵌套問題,滑動衝突,item顯示問題,如何處理
  10. viewpager 嵌套Listview的滑動衝突解決
  11. 自定義view的實現方式
  12. 動畫的實現有幾種,區別在哪,高級的動畫怎麼實現
  13. 動畫的性能優化
  14. Activity跳轉時的生命週期調用
  15. Service的啓動方式,區別
  16. IntentService與Service的區別,會繼續問些細節如HandlerThread
  17. Aidl的原理以及使用
  18. Android跨進程通信的方式
  19. Android Binder的用法,架構,實現原理等
  20. Android中使用到的設計模式
  21. Android類加載機制,描述模型,各個加載器的用途
  22. 熱修復與插件化的介紹,原理
  23. 項目中使用的架構,MVP,MVVM的使用,區別,原理
  24. AMS,PMS的作用
  25. AMS 與 應用之間如何進行通信,架構如何
  26. AMS中的消息機制
  27. AMS與Activity生命調度關係
  28. 應用運行權限的使用以及原理,可以舉個藍牙權限的申請,BluetoothService啓動功能時會檢查
  29. Android系統的啓動流程
  30. ContentProvider的使用及原理
  31. Android中的數據存儲
  32. Android架構介紹
  33. 開發和維護過哪些framework的業務邏輯
  34. Context的設計思想
  35. JNI的原理以及使用
  36. Android多語言適配
  37. Android多分辨率適配
  38. Android全面屏適配
  39. 根據生命週期的問題,來分析一個內存泄漏的問題, 如Context引用
  40. Android中網絡框架的使用以及原理
  41. 用過的開源框架的使用以及原理
  42. 圖片的優化,以及三級緩存機制
  43. Android中的動態代理
  44. Databinding的原理
  45. Android進程與Linux進程區別
  46. AndroidP中的用戶空間以及Window空間的區別
  47. Android中的加密機制
  48. 用過SeLinux嗎?如何寫用例
  49. CTS問題你們是如何處理的
  50. Android手機系統研發的流程

其他:

  1. http與https的區別,如何進行加密
  2. http的請求方式,特點,報文結構
  3. socket的原理以及使用
  4. 手寫算法,算法的效率等問題
  5. 職業規劃
  6. 爲什麼要離職
  7. 項目中遇到最大的困難是什麼
  8. 大家對你的看法是什麼
  9. 三次握手,四次揮手
  10. Shell基本的使用,比如,查找某個目錄下某個文件的一個方法
  11. git原理,本地操作後,一系列提交的過程
  12. git衝突的處理
  13. git中的merge, cherry pick, rebase區別
  14. repo的使用以及原理
  15. 開發,bug的流程,等級,週期是如何的

公司面試題

騰訊面試題:

熱修復
listview加載複雜佈局 錯位
大圖加載
view自定義
網絡框架
緩存
內存泄露
印象最深/遇到的難點
synchronized 與 鎖的區別
鎖有幾種
減小apk大小
混淆
Android跨進程通信的方式

筆試:

  1. 輸入兩個二進制字符串,想加,輸出二進制字符串
    示例:
    Input: a=“11”, b=“1”
    Output: “100”
  2. 給一個語料庫,按行存儲,文件大小100MB,根據語料庫,實現查找自動補全
    示例:
    語料庫:
    abcdefg
    abcdde
    acbba
    aedff
    abcxxx
    Input: abc
    返回: abcdefg, abcdde, abcxxx
    要求
  3. 運行內存不超過100MB
  4. 自定義數據結構,緩存語料庫,無需每次查找都加載
今日頭條面試題:

blockingqueue底層實現,leankcanry底層實現
除了嵌套屬性動畫,怎麼做更復雜的動畫
final的使用,內存關係
內存泄漏,過渡繪製,啓動優化
多線程,結合了blockingqueue
listview的嵌套使用:滑動衝突,item問題
mvvm底層原理
動態代理
view的繪製,事件消費的一些細節爲

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章