斬獲美團和咕咚的offer後,說一說面試和想法~

過去的一週中,我主要是出去找工作去啦~過去的一週,面了 4 家公司,從小到大都有,最終斬獲了 3 個 offer。在經歷了一番內心掙扎之後,我於週二上午決心選擇了福利待遇相對較差一些的咕咚。

主要還是因爲咕咚的面試官給我的印象非常深刻,我很高興能夠加入一家技術氛圍如此淳厚的廠子。

相對較大的公司的話,面試題可能更加具有一定的參考性,所以我就姑且把上週面試的咕咚和美團面試題分享給大家,可能不全,有些問題可能忘了。

咕咚

一面(Android Leader)

  1. 請舉出你認爲你在工作中挑戰最大的事例;
  2. RecyclerView 一個適配器如何適配多種佈局,不考慮根據不同 Type 設置不同 ViewHolder;
  3. 用過數據庫麼?如何防止數據庫讀寫死鎖?
  4. 可以考慮採用 ContentProvider && 單例實現。
  5. CardView 真的好麼?除了 CardView 還能用什麼方式實現圓角等?假設我們有上千個 Shape 文件,如何維護?
  6. 瞭解過 MVVM 麼?它和 MVP 有什麼差距?
  7. 是否用過 DataBinding?ButterKnife 是怎麼做到佈局綁定的?
  8. 使用過什麼圖片加載庫,Glide 的源碼設計哪裏很微妙?
  9. 知道 Linux 的線程間通信麼? Android 爲啥會採用 Binder?Binder 的機制又是怎樣的?
  10. 講講 AIDL。
  11. 如何能保證隨時隨地都能拿到一個 Activity 的當前生命週期?
  12. 會用 Kotlin 麼?
  13. 可見 Kotlin 自從成爲了谷歌首推語言後,確實還挺重要的,必須學習一下了。
  14. Android 7.0 都適配了什麼?
  15. 你還有什麼想問我的?


二面(移動端 Leader)

  1. 講講 HTTPS 是怎麼做加密的?講講非對稱加密算法。
  2. Android 8.0 都有些什麼新特性?
  • 畫中畫;

  • 自適應 icon;

  • WebView 增強;

  • 通知分類別,增加圓點,通知延後,通知增加背景,同樣增加歷史,通知超時自動清除;

  • 自動填充信息(類似瀏覽器的選擇保存的賬號密碼功能)

  • 後臺執行增加限制(主要是服務和廣播);

  • 藍牙提升。支持藍牙低功耗 5.0 標準;

  • 智能文本選擇與智能共享;

  • WLAN 感知;

  • 取消屏幕縱橫比限制;

  • 多顯示器支持;

  • 可下載字體、XML 定義字體;

  • 自適應 TextView,統一佈局邊框;

  • 更豐富的色彩管理功能;

  • 可以聲明應用類別。
  1. 使用過 Gradle 的哪些功能。
  2. RecyclerView 滑動卡頓,請分析原因,並提供解決方案。TraceView 都能看到哪些成分?
  3. 操作系統裏面的一個「虛擬內存」是指的什麼?
  4. 虛擬內存指的是一個對內存和外存進行調度,只是從邏輯上擴充了內存,但實際上不存在的內存存儲器。
  5. 原理是:基於局部性原理,在程序裝入的時候,可以將程序的一部分裝入內存,而在其餘部分留在外存,就可啓動程序執行;在程序執行時,當所訪問的信息不在內存的時候,由操作系統所需要的部分調入內存,然後繼續執行程序;操作系統再將內存中暫時不使用的內容換出到外存上,從而騰出空間存放將要調入內存的信息。
  6. Android 是如何做的性能調優?
  7. 講講適配器模式中適配器是幹嘛的?在開發中都在哪裏有用到?
  8. 都用過哪些開源庫?
  9. 會用 KotLin 麼?
  10. 你還有什麼想問我的?


三面:技術總監

  1. 爲什麼大多數 API 會選擇短連接而不是長連接?
  2. 爲什麼會選擇用 RxJava?
  3. MVVM 模式到底有什麼好處?
  4. 詳細講講 Android 8.0 新特性。
  5. Kotlin 學習的怎麼樣了?
  6. 你的職業規劃是怎麼樣的?
  7. 你有什麼想問我的?


四面:HR

  1. 你目前是在職還是已經離職?
  2. 你爲什麼離職?
  3. 對咕咚 APP 的瞭解?
  4. 你是一個自律的人麼?
  5. 你的職業規劃是怎麼樣的?


五面:CT0

  1. 先做個自我介紹。
  2. 你在原來公司發展挺好的,但你爲什麼離職?
  3. 你們的 APP 採用藍牙協議了麼?


美團

一面(Android 技術)

  1. 講講你工作開發的項目是幹嘛的。
  2. 手寫快排;
  3. 手寫二分查找,並分析時間複雜度;
  4. 講講 APK 是如何做瘦身的?
  5. 說說你項目中挑戰最大的一件事。
  6. 講講 HTTPS 是如何做加密的,說下非對稱加密算法;
  7. 說一下 HTTP 協議請求頭我們常用的 3 個字段;
  8. 講講你這個圖片壓縮庫是怎麼做的?
  9. 進程保活怎麼做?進程拉活現在還可以做麼?
  10. 用過線程池麼?講講 AsyncTask 的原理。
  11. 講講 HashMap 的原理。
  12. 講講 Android 如何做性能調優?
  13. 你們是如何做 UI 的機型適配的?
  14. 講講你們的多渠道打包是怎麼做的?
  15. bugly 是幹嘛用的?Handler 怎麼處理內存泄漏,除了使用弱引用。你還知道哪些地方需要注意內存泄漏?
  16. Bitmap 使用需要注意哪些問題?Bitmap.recycle() 會立即回收麼?什麼時候會回收?如果沒有地方使用這個 Bitmap,爲什麼垃圾回收不會直接回收它?
  17. 如何存儲一個大圖,但顯示在 UI 上的是小圖。
  18. 官方爲什麼會把 HttpClient 和 HttpUrlConnection 替換爲 OkHttp 默認實現?它有什麼好處?
  19. 你的 GitHub 上都開源了些什麼東西?都爲哪些開源庫貢獻了源碼?ImagePicker 爲啥會出現有些圖片拿不到?
  20. 瞭解二叉樹的遍歷麼?講一講他們。
  21. 講講 SVN 和 Git 的差別,Git 的優勢是什麼。
  22. 講講 MVVM,主要是爲了解決 MVP 和 MVC 的什麼問題?
  23. equals() 和 hashCode() 的區別是什麼?平時有重寫過它們麼?什麼情況下會去重寫。
  24. 講下爲什麼在 Android 下推薦使用 ArrayMap,相比 HashMap 它到底有什麼優勢?


相關文章