失業3個月之後,含淚面試京東高德,終於拿下京東Android研發崗(面試總結+學習心得)

南方吳彥祖_藍斯發表於2020-09-15

眾所周知,網際網路行業是一個說變就變的行業,隨著網際網路的飛速發展,湧現了一大批新興網際網路行業,在這個行業裡,巨頭企業也在不停地更換中。而對於程式設計師來說,可能一不小心就要面臨裁員的危機,畢竟在這個行業裡,人才太多,而在網際網路寒冬的今年,我也不幸被裁員,加入到了失業大軍。

值得高興的是,在被裁員的3個月之後,我面試了京東、高德及兩個公司的分公司,雖然四次面試有三次失敗,但也成功拿下了京東金融Android研發崗的offer,這3個月的時間裡,我並未氣餒,也未選擇轉行,而是靜下心來複習好一些理論,鼓起了勇氣給京東投了我的簡歷。

以下附上我這次面試京東及高德團隊的面試題以及我個人的複習方法和學習心得,包括了一些可以免費分享給大家的文件, 需要這些文件的( 點選我 )免費領取!

京東

面試機會來自於Boss直聘

京東到家(電面):

  • GitHub上面的開源專案
  • 一個執行緒能否建立多個Handler,Handler跟Looper之間的對應關係
  • ArrayList跟HashMap是夠執行緒安全,如何保證執行緒安全
  • Volley返回資料量比較大的請求時怎麼辦
  • ListView跟RecyclerView重新整理資料原理,使用到的設計模式
  • 適配如何做,有沒有適配過全面屏
  • Fragment跟Activity的通訊方式,你知道幾種?

京東商城(電面):

  • 記憶體洩露的種類
  • ActivityA啟動ActivityB時生命週期的變化
  • AMS是如何管理Activity的
  • JVM中的GC回收機制
  • 常見的跨程式通訊方式,AIDL的實現原理
  • APP以及Activity的啟動流程
  • Hook以及插樁技術

京東金融(Offer)

一面:

  • 從長度為m的int陣列中隨機取出n個元素,每次取的元素都是之前未取過的,如何最佳化
  • https是如何保證安全的,證照如何校驗
  • Android的簽名機制,APK包含哪些東西
  • 是否遇到過OOM,如何解決
  • 是否做過逆向
  • 對JNI瞭解多少
  • 手寫單例(DCL)
  • 是否寫過so檔案
  • 熱修復原理,如何進行dex替換的

二面:

  • 簡單說下專案
  • 記憶體洩露,如何檢測以及檢測的原理
  • 點選Launcher跟點選微信支付啟動微信有什麼區別
  • 逆序一個字串,不能呼叫String的reverse方法(考察編碼風格)
  • 元件化原理,模組化機制
  • 沒有給許可權如何定位,特定機型定位失敗,如何解決
  • 同步跟非同步機制(是業務上的,不知道他想問什麼)
  • 執行緒池中核心執行緒數跟最大執行緒數如何定義
失業3個月之後,含淚面試京東高德,終於拿下京東Android研發崗(面試總結+學習心得)

高德—汽車事業部(Over)

面試機會來自於Boss

一面:

  • View的生命週期
  • View的繪製流程跟事件分發
  • Activity跟Window之間的關係
  • 對C跟JNI是否熟悉
  • 熱修復原理,外掛化是如何進行載入外掛的
  • Java中的鎖,各種同步方式之間的區別
  • ANR在四大元件中的時間,場景
  • OOM,如何避免
  • 記憶體洩露原理,如何避免
  • MVC跟MVP之間的區別
  • ListView針對多種item的快取是如何實現的
  • Android繪製二維跟三維的View的區別
  • 是否瞭解硬體加速
  • ListView是如何實現對不同type的item的管理的

二面:

  • Android中IPC方式,各種方式優缺點,為什麼選擇用Binder
  • 主流的熱修復框架流派,原理,是否研究過classloader原始碼
  • Android為什麼要設計兩種classloader,為什麼不用一種,透過type來區分
  • Bundle傳遞資料為什麼需要序列化
  • 手寫一個快排,分析原理
  • 廣播傳輸的資料是否有限制,是多少,為什麼要限制?
  • Activity啟動時生命週期是如何回撥的?
  • MVP.MVC.MVVM之間對比分析
  • 元件化通訊:有幾種通訊方式,Arouter原理
  • 外掛化載入流程,原理
  • 關於反射混淆,耗效能的解決方式
  • 天貓七巧板佈局原理
  • 熱修復流派,原理

高德—地圖事業部(Over):

面試機會來自於Trinea內推

一面:

  • RecyclerView的itemdecoration如何處理點選事件
  • 單例模式如何修改資料
  • android事件傳遞,非常細
  • 多執行緒

二面:

  • JVM記憶體分佈,Classloader
  • 靜態代理跟動態代理
  • 執行緒的生命週期
  • 是否用過DataBinding
  • 是否接觸過JNI
  • 對熱修復跟外掛化了解多少
  • 對RN瞭解多少
  • 二分查詢
  • 說下多型
  • 編譯期註解跟執行時註解
  • 執行緒跟程式間通訊
  • Android中的IPC
  • java中的傳遞
  • equals跟==
  • Picasso的儲存
  • 專案中的難點
  • 專案中用到了哪些第三方
  • MVC,MVVM,Clean架構
  • 抽象類跟介面的區別,介面的預設修飾符

面試之外的學習心得

1.好記性不如爛筆頭

這句諺語,幾乎無人不知無人不曉,但是總被許多初學者拋在腦後。在學習的時候,總是看的程式碼多,而動手練習的程式碼少!身為一個程式設計師都應該很清楚,程式碼如果不多動手敲它,它永遠不會自己跑進腦中,所以多動手才是成功的關鍵。

2.花更多的時間分析問題

花更多的時間理解和分析問題,然後再設計方案吧。你會發現剩下的事情很容易了。設計不是說要用建模語言和工具,可以是僅僅看看天空在腦子裡構思。那些在遇到問題就開始敲程式碼的人往往會最終偏離需求。作為程式設計師,當你在編寫程式碼之前,儘量把問題分析透徹一點,這不僅能提高你編碼的效率,更重要的是能提高你的分析問題能力。

3.重思考,多總結

一個段好的程式碼並不是它們越複雜越好,簡單的方法,實現複雜的功能,才是我們最需要的。要提高編碼速度,更重要的是簡化梳理程式流程,以最小的程式碼量完成功能實現。所以程式設計最重要的事情是思考和總結。

最後

這裡附上相關的我搜集整理的24套騰訊、位元組跳動、阿里、百度2019-2020面試真題解析,把技術點整理成了影片和PDF(實際上比預期多花了不少精力),包含知識脈絡 + 諸多細節,由於篇幅有限,這裡以圖片的形式給大家展示一部分。

總之也是在這裡幫助大家學習提升進階,也節省大家在網上搜尋資料的時間來學習,也可以分享給身邊好友一起學習

【一線網際網路面試真題解析大全】

失業3個月之後,含淚面試京東高德,終於拿下京東Android研發崗(面試總結+學習心得)

【位元組跳動面試真題解析】

失業3個月之後,含淚面試京東高德,終於拿下京東Android研發崗(面試總結+學習心得)

【騰訊、華為Android中高階面試真題解析】

失業3個月之後,含淚面試京東高德,終於拿下京東Android研發崗(面試總結+學習心得)

最近面試被懟了?缺面試題刷提升自己嗎?

點選:

Android學習PDF+架構影片+面試文件+原始碼筆記

來獲取學習資料提升自己去挑戰一下BAT面試難關吧

2020年雖然路途坎坷,都在說Android要沒落,但是,不要慌,做自己的計劃,學自己的習,競爭無處不在,每個行業都是如此。相信自己,沒有做不到的,只有想不到的。祝大家2020年萬事大吉。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69983917/viewspace-2721142/,如需轉載,請註明出處,否則將追究法律責任。

相關文章