2020非科班生的Android秋招,金九銀十求職經歷 (快手,拼多多等12家大廠,附簡歷重點技能書寫方式)

2020-10-11 12:00:24

前言:

最近了解到朋友因為學習起來感覺有些亂,沒方向感,他特意
挑了難一點的大廠找找找虐,他說這樣才有意義嘛!

還跟我說什麼懷著進大廠的夢想,先去試試水。

結果嘛
就被虐得體無完膚,於是我就問他都有些什麼內容,然後做了以下的總結。(下列都以第一人稱敘述)

涉及的企業有:阿里、快手、轉轉、用友(較簡單,不做展示)。還有一個企業不記得名稱了(純業務的面試,沒印象)


快手

先說下筆試情況,2.8/4。

面試的話是 下午2點到4點面試連著兩面,然後hr最後說結果會在幾天之內反饋。

這個面經不全,因為現在有的問題已經想不起來了,尤其是沒答好的問題可能更記不住了hhhhh

4.11面試,4.13拿offer

一面(一小時)

Android問題:

1.詳細的講下View的繪製過程

2.使用過哪些動畫,屬性動畫和View動畫的區別在哪裡,View動畫的原理(ValueAnimator和ObjectAnimator的區別)

3.Activity的生命週期,啟動模式,區別在哪,講下各自的應用場景。

4.Fragment的生命週期

5.Service的生命週期

6.程序與執行緒的區別

7.在專案中使用過多執行緒麼

Java問題:

1.HashMap(因為我寫過相關文章,這個問題答了蠻長的一段時間)

2.java gc演演算法

3.常用的執行緒池,以及執行緒池的各個屬性的含義

4.四種參照型別的區別(可以結合記憶體漏失去聊)

程式碼題

1.手寫二分查詢

二面(一小時)

Android問題:

1.事件分發詳細的講(三個核心函數以及整體過程),詳細的講下dispatchTouchEvent,子View如何阻止父View攔截事件,Action_Cancel什麼時候會發生,一個應用場景:兩個並排Button,點選button之後,又移動到另一個button,但不點選滑動到外面會經過發生哪些事件。

2.OkHttp

  1. Message.obtain()有什麼好處,為什麼不使用new Message(防止多次Gc)

4.LinearLayout和RelativeLayout的區別,優缺點,層級巢狀等等等

5.ConstrantLayout講講特點

6.效能優化在專案中做過哪些

7.讀過哪些Android的原始碼

8.BroadCastReceiver的原始碼看過麼?

9.FrameLayout瞭解麼?

程式碼題:

1.場景題,實現一個ActionMangager,其中包括 registerAction(String action, IActionCallback callback), unregisterAction(IActionCallback callback); notifyChange(string action)三個方法。類似於BroadCastReceiver,一個action可能對應多個Callback,notifyChange中要回撥action對應的所有Callback物件的方法。同時還問了怎麼滿足執行緒安全的問題等等,會根據程式碼繼續問問題。

2.之字形遍歷二元樹

拼多多

筆試

基於給定介面實現ImageLoader框架

一面

  1. 自我介紹
  2. 靜態變數和範例變數的區別
  3. 重寫equals()方法的注意事項;兩個list是怎麼判斷是否相等的?
  4. HashTable和HashMap的區別;是否允許鍵為null
  5. 資料同步的方法;synchronized可以在物件上加鎖嗎?在方法上加鎖是加在哪個物件上?
  6. 程序間讀寫檔案的同步方式
  7. 瞭解哪些加密演演算法;AES和RSA的區別
  8. HTTP響應碼
  9. 程序優先順序;Android程序優先順序
  10. 如何使一個Service處於另一個程序中;程序的服務保活
  11. Touch事件分發機制
  12. 如何實現使用者端長連線的?重試策略是怎樣的?如何監控HTTP請求的?
  13. 提問問題

二面

  1. 三道題選兩道http://collabedit.com/cx9uv
  2. 大頂堆和棧的概念
  3. 最短路徑演演算法概念
  4. 如何快取HTTP

HR面

也不能算是HR面吧,簡單聊了聊。

  1. 專案介紹;擔任的角色
  2. 家庭情況;期望薪資
  3. 在哪裡實習?實習的時候拿到過哪些offer
  4. 介紹了拼多多的待遇以及工作制度

三面

  1. 自我介紹;專案問了些
  2. 如果安卓是單執行緒的,那麼如何處理介面重新整理和網路操作兩個模組
  3. 演演算法題

新美大

一面

  1. 自我介紹
  2. 為什麼選用OkHttp?為什麼用MVP模式?
  3. ImageLoader的三級快取怎麼做的;OkHttp的磁碟快取怎麼做的?
  4. 如何刪除文章的廣告之類的?有遇到不符合的情況嗎?
  5. HashMap是執行緒安全的嗎?HashMap執行緒不安全會造成什麼現象?如何使HashMap變為執行緒安全的?
  6. Java的記憶體模型;GC;遇到過OOM情況嗎?有什麼可以檢測記憶體洩露的工具
  7. 文章列表用的什麼什麼控制元件?ListView如何優化?RecyclerView用過嗎?和ListView的區別
  8. 應用中有幾個Activity;ViewPager巢狀Fragment怎麼用,遇到過什麼坑沒?
  9. 自定義View時自定義屬性該怎麼做?
  10. 印象最深刻的專案,或難點

二面

  1. 自我介紹
  2. 介面展示用的ListView還是RecyclerView?如何做文章的過濾的?如果改成別的網站需要怎麼做?
  3. ImageLoader怎麼實現的?記憶體快取使用的是什麼策略?
  4. 專案中TCP+HTTP+JSON是怎麼回事?
  5. android ui自動化測試
  6. 實習的專案
  7. 對Kotlin的瞭解;準備讓用Kotlin寫一個介面的
  8. 給了一個佈局,讓說說看怎麼編寫
  9. 瞭解啥新技術
  10. 問問題

三面

  1. 自我介紹
  2. 為什麼選用AES加密?
  3. 全程沒聊技術,介紹他所在部門做的事情,問我感不感興趣,我也提問了一些問題,聊得比較投機
  4. 手上的offer

HR面

問了一些基本資訊,手上offer情況,對薪資的要求。由於三面全程沒問技術,心裡比較虛。


附上簡歷中設定的個人技能

  • 熟悉常用設計模式:策略、責任鏈、單例、裝飾者、代理、觀察者、介面卡、外觀/門面
  • 研究過Mybatis3原始碼,熟悉sqlsession執行流程、熟悉一級快取、二級快取原理
  • 研究過Spring5註解方式啟動Spring的原始碼,熟悉Springbean生命週期、SpringAOP底層原理、Spring事務底層原理、Spring迴圈依賴解決的原理
  • 研究過SpringMVC5的原始碼,可手動模擬SpringMVC框架
  • 研究過Springboot2的啟動原始碼,熟悉Springboot核心設計理念,可自定義starter元件,熟悉@SpringBootApplication底層原理
  • 熟悉Java8新特性
  • 熟悉常用集合(ArrayList、LinkedList、HashMap1.7、HashMap1.8、ConcurrentHashMap1.7、ConcurrentHashMap1.8)原理,並研究過原始碼
  • 可手寫二元樹、瞭解紅黑樹旋轉變色規則
  • 熟悉Nginx負載均衡、動靜分離、反向代理、靜態檔案壓縮原理
  • 瞭解網站跨域問題及其相應解決方案
  • 瞭解Nginx+Lvs+Keep-alive實現高可用的原理
  • 熟悉多執行緒(通訊、鎖,CAS機制)、Java記憶體模型,可手寫Java執行緒池
  • 熟悉Java記憶體結構,瞭解常用垃圾回收演演算法、垃圾回收器以及記憶體溢位和記憶體漏失等問題
  • 熟悉Zookeeper使用,瞭解Zookeeper工作原理,分散式鎖原理、分散式叢集原理、選舉策略、資料最終一致性原理。
  • 瞭解MySQL中的事務隔離級別和常見的鎖(共用、排它、意向、記錄、間隙、臨鍵、行鎖、表鎖等)
  • 研究過Tomcat8底層原始碼,可在微服務架構下優化Tomcat8
  • 熟悉Netty框架,瞭解BIO、NIO、TCP/UDP原理,瞭解OSI七層網路模型,瞭解請求粘包、拆包原因和解決方案,瞭解序列化機制。
  • 熟悉SpringCloud框架,瞭解服務治理、服務註冊發現、服務降級、熔斷、隔離等Hystrix服務保護機制的原理,熟悉Ribbon負載均衡、Config設定中心、Zuul閘道器、Swagger介面偵錯
  • 熟悉Redis淘汰策略、事務、持久化機制、分散式鎖、單執行緒高效、自動過期、與MySQL保持一致性等原理
  • 熟悉Redis穿透、擊穿、雪崩、叢集、主從複製、哨兵選舉、cluster分片、動態擴容、縮容、布隆過濾器等原理
  • 熟悉常用訊息佇列RabbitMQ/Kafka/RocketMQ,瞭解其解決分散式事務,訊息冪等,順序消費,事務訊息以及常用工作方式等原理

最後

如果說成功有捷徑,那麼一定是不斷的積累與堅持,二本市場行銷畢業,一點基礎沒有的情況下選擇了自己喜歡的事情,前期遭遇了多少困難只有自己知道!還好結局沒有那麼不堪,努力是不會被辜負的,加油!

附上:我們之前因為秋招收集的二十套一二線網際網路公司Android面試真題(含BAT、小米、華為、美團、滴滴)和我自己整理Android複習筆記(包含Android基礎知識點、Android擴充套件知識點、Android原始碼解析、設計模式彙總、Gradle知識點、常見演演算法題彙總。)

本文在開源專案:【GitHub 】中已收錄,裡面包含不同方向的自學程式設計路線、面試題集合/面經、及系列技術文章等,資源持續更新中…

如果需要PDF版本可以在群資料夾裡,自行領取!