最新Android大廠高頻面試題,原理 實戰講解

mb612ed766c32c3 2021-09-19 07:36:41 阅读数:662

最新 android 原理

**工欲善其事必先利其器,要想拿到滿意的offer,必須有一定的准備。**以下列出來的東西是筆者認為應該准備的東西

  • 簡曆中提到的,一定要有准備,別給自己挖坑
  • Java准備,Java基礎,有的公司會扣的很細,Java數據結構相關的類、JUC、Java的語言設計、
  • JVM 推薦看一下深入理解Java虛擬機這本書
  • 網絡部分,推薦看一下圖解TCP/IP,圖解HTTP這兩本書,如果覺得不滿足,也可以看一些其他的,如詳解TCP/IP卷
  • Android Framework,推薦看gityuan的博客,並且自己看一下代碼
  • 第三方開源庫,這個筆者保持這一直讀代碼的習慣,因此不會刻意准備
  • 算法,推薦看一下劍指offer,leetcode隨便刷一些題即可,不會太難
  • 自己搜集的算法題
  • 平常搜集的一些有質量的面試經驗

相信每個人都有自己複習的方法,這裏就不多說了。

面試過程

好的面試官會去發現候選人的優點,他們會根據你簡曆寫的東西進行提問,因為,把簡曆上寫的搞的明明白白,即可。在面試過程中,不要緊張,要突出自己的特點,有意的向自己擅長的方向引導。態度要好,要自信,如果遇到自己不會的,盡量別說自己不會,稍微思考一下,突出自己解决問題的能力。

接下來就是一些面試題。

最新Android大廠高頻面試題,原理 實戰講解_移動開發

面試題

小米公司

電面-20分鐘

  • 簡單的溝通自己的工作經曆
  • 聊聊過去一年做的事情
  • 基本上以簡曆上的為主

一面-40分鐘

  • 介紹之前的工作內容
  • 如何統計進程的啟動時間,進程啟動的過程,activity啟動的過程
  • jvm gc
  • jvm 堆和棧的區別,棧上分配
  • 四種引用的區別
  • 性能優化
  • handler
  • binder
  • 算法題。最大回文字串。有getmin功能的棧,時間複雜度o1,兩數相加

二面-40分鐘

  • 自我介紹
  • 插件化
  • binder,經過幾次內存拷貝,從哪裏到哪裏,
  • okhttp
  • 跨進程eventbus
  • 設計模式6大原則,常用的
  • activity a到b的生命周期變化,view是什麼時候顯示的
  • 事件分發機制
  • pms activityrecord
  • 看源碼的動力
  • jni,jnienv作用,jni線程切換
  • 性能優化,fd limit
  • 算法題。隨機打印k個數

三面-60分鐘左右

  • 說下對Android的了解
  • 事件分發機制 給了個場景 討論了半天
  • mvp優缺點,mvvm
  • 相册搜索,設計。討論了半天
  • 介紹了下他們的業務
  • 職業規劃

美團

面試問的很多問題忘記。一面面試官重技術,廣度+深度+基礎都要有。

  • jvm內存分區,那些是線程私有的
  • 類加載機制
  • 做的一些事情
  • 泛型原理
  • 一筆畫算法
  • 鏈錶去重
  • 滑動沖突的一個場景可以了,nestedscrollview
  • gradle插件相關
  • 打包過程
  • tcp/ip協議分層
  • http請求包 響應包
  • https鏈接過程
  • 做的東西 最有成求感的
  • asm aspectj等改字節碼的方式
  • 職業規劃
  • 找什麼樣的工作
  • 為什麼離職之類的
  • hybrid

陌陌

陌陌面試題沒記住多少,總體來說和其他並無太大差別,就是考察你做的事情是不是真實做過,價值怎麼樣。

  • 數據庫優化
  • 網絡優化
  • 多路複用,自己用udp實現quic
  • 反射優化
  • 介紹下自己做的事情,
  • 為什麼離職之類的
  • apm
  • 熱修複,tinker

快手

3面技術+1面hr

一面重java,二面重Android、項目和自身特點。

一面java

  • ArrayList LinkedList區別,場景,時間複雜度
  • 寫一個單例,volatile的作用,為什麼需要
  • volatile如何實現,內存屏障
  • 如何讓GC不回收
  • HashMap的數據結構,擾動函數,擴容
  • 並發、鎖、AQS、CAS之類的
  • 線程池,線程池原理,種類。ForkJoin線程池,由於我是最近一段時間內唯一一個提到ForkJoin線程池的,所以比較加分。
  • 算法 - 翻轉鏈錶

二面 根據自己的簡曆問

  • 代理、靜態代理、動態代理、CGLIB
  • asm javaassit
  • java hook,native hook
  • 網絡協議,tcp三次握手,為什麼三次,四次揮手,為什麼四次,三次行不行
  • 消息隊列
  • 算法-按層打印二叉樹

三面

聊業務,聊規劃之類的

總結

總的來說,現在市場情况一般,招人寧缺毋濫,因此,很多公司喜歡技術能匹配到年限的候選人,在我看來,3年P6,5年P7是他們比較中意的。建議跳槽把握好這兩個時間點。

最後

那我們該怎麼做才能做到年薪60萬+呢,對於程序員來說,只有不斷學習,不斷提昇自己的實力。我之前有篇文章提到過,感興趣的可以看看,到底要學習哪些知識才能達到年薪60萬+。

通過職友集數據可以查看,以北京 Android 相關崗比特為例,其中 【20k-30k】 薪酬的 Android 工程師,占到了整體從業者的 30.8%!

北京 Android 工程師「工資收入水平 」

最新Android大廠高頻面試題,原理 實戰講解_程序員_02

今天重點內容是怎麼去學,怎麼提高自己的技術。

1.合理安排時間

2.找對好的系統的學習資料

3.有老師帶,可以隨時解决問題

4.有明確的學習路線

 CodeChina開源項目:《Android學習筆記總結+移動架構視頻+大廠面試真題+項目實戰源碼》

當然圖中有什麼需要補充的或者是需要改善的,可以在評論區寫下來,一起交流學習。

最新Android大廠高頻面試題,原理 實戰講解_程序員_03

版权声明:本文为[mb612ed766c32c3]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/09/20210919073640678P.html