Android開發:90% 成功率的BAT Offer 收割機是怎樣練成的!

都說今年的形勢很差,各類找工做不順利,但我身邊就有一位同窗,每次面試都拿到了offer,我特地邀請他來給你們分享下經驗,雖然不一樣人的技術領域未必相同,但不少東西是相通的,但願本文能對你們有所幫助。java

前言

8月份陸陸續續出去面試了一下,看一下本身的價值和當前的行情,整體來講,仍是挺滿意的。面試了幾家知名工廠,且都拿到了offer。分別是小米、美團外賣、陌陌、快手。git

簡歷怎麼寫

一份好的簡歷每每事半功倍。筆者平均一年一跳的工做經歷,看起來是很是糟糕的,那爲何還能有不少的面試邀約呢?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等有必定的瞭解

1三、瞭解Android FrameWork及其部分流程與實現原理

1四、對Android逆向有必定的瞭解,有必定的脫殼能力

1五、有必定的架構能力和極強的解決問題的能力

再加上筆者在過去的一年,一直在作基礎架構相關的工做,所以,簡歷方面會有不錯的吸引力。
Android開發:90% 成功率的BAT Offer 收割機是怎樣練成的!

面試前的準備

工欲善其事必先利其器,要想拿到滿意的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三次握手,爲何三次,四次揮手,爲何四次,三次行不行
  • 消息隊列
  • 算法-按層打印二叉樹

三面

  • 聊業務,聊規劃之類的

###總結

總的來講,如今市場狀況通常,招人寧缺毋濫,所以,不少公司喜歡技術能匹配到年限的候選人,在我看來,3年P6,5年P7是他們比較中意的。建議跳槽把握好這兩個時間點。

文章不易,若是你們喜歡這篇文章,或者對你有幫助但願你們多多,點贊,轉發,關注 哦。文章會持續更新的。絕對乾貨!!!

相關文章
相關標籤/搜索