我的華為面試經曆分享,已整理成文檔

mb612e2d70ec53f 2021-09-19 06:37:11 阅读数:570

分享 整理 理成 成文

簡曆怎麼寫

一份好的簡曆往往事半功倍。筆者平均一年一跳的工作經曆,看起來是非常糟糕的,那為什麼還能有很多的面試邀約呢?Boss直聘上往往有很多RD在要簡曆,他們往往是用人部門的leader,因此,突出的職業技能以及過往一年所做的工作尤為重要。下面是我的技能清單。

  • 熟悉面向對象編程,熟悉Java、kotlin等開發語言,對並發、JVM等有一定的了解
  • 熟悉Android開發,了解Android版本差异
  • 熟悉自定義View、動畫等技巧,熟悉消息、事件分發等機制
  • 熟悉Android性能優化,能够合理利用工具處理工作中遇到的性能問題
  • 熟悉NDK編程、熟悉JNI
  • 熟悉常用的開源框架並了解其內部實現原理
  • 熟悉Javaassit、ASM、AspectJ等字節碼修改技術
  • 熟悉Java層Hook,Native層Hook,能够合理利用並解决實際問題
  • 熟悉gradle,能够根據需求編寫出各種gradle插件
  • 對Android插件化、熱修複等有比較深入的研究
  • 熟悉常用設計模式,並能去設計出良好的代碼
  • 對TCP/IP、Http、Https等有一定的了解
  • 了解Android FrameWork及其部分流程與實現原理
  • 對Android逆向有一定的了解,有一定的脫殼能力
  • 有一定的架構能力和極强的解决問題的能力

再加上筆者在過去的一年,一直在做基礎架構相關的工作,因此,簡曆方面會有不錯的吸引力。

面試前的准備

工欲善其事必先利其器,要想拿到滿意的offer,必須有一定的准備。以下列出來的東西是筆者認為應該准備的東西(雖然8月面試只准備了算法)。

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

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

面試過程

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

接下來就是一些面試題。

面試題

小米公司

電面-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三次握手,為什麼三次,四次揮手,為什麼四次,三次行不行
  • 消息隊列
  • 算法-按層打印二叉樹

三面

  • 聊業務,聊規劃之類的

如果你進階的路上缺乏方向,可以 點擊我的【CodeChina開源項目】加入我們的圈子和安卓開發者們一起學習交流!

  • Android進階學習全套手册

    我的華為面試經曆分享,已整理成文檔_移動開發

  • Android對標阿裏P7學習視頻

    我的華為面試經曆分享,已整理成文檔_程序員_02

  • BATJ大廠Android高頻面試題

    我的華為面試經曆分享,已整理成文檔_程序員_03

最後,借用我最喜歡的喬布斯語錄,作為本文的結尾:

人這一輩子沒法做太多的事情,所以每一件都要做得精彩絕倫。
你的時間有限,所以不要為別人而活。不要被教條所限,不要活在別人的觀念裏。不要讓別人的意見左右自己內心的聲音。
最重要的是,勇敢的去追隨自己的心靈和直覺,只有自己的心靈和直覺才知道你自己的真實想法,其他一切都是次要。

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