阿里巴巴面經記分享

本文只對面試過程分享,至於簡歷編寫、具體重點知識複習等不作討論java

1、面試狀況

筆者一共經歷了4輪面試,其中:linux

  • 一面(電話技術面)
  • 二面(電話技術面)
  • 三面(視頻技術面)
  • 四面 (技術總監+HR交叉視頻面)

阿里的流程相對而言較慢,須要足夠的耐心才行!面試

2、面試題

部分已經遺忘,請諒解!算法

一面

  1. 講一下你最有印象的項目(表明性),過程當中會穿插一些子問題;
  2. java wait api: 在main函數中 調用string.wait()會出現什麼狀況,爲何?
  3. java nio知識
  4. linux條件變量
  5. 操做系統相關命令是否熟悉,進程間管道通信
  6. http GET POST DELETE 方法含義,PUTPOST區別(冪等 | 非冪等)
  7. 網絡層協議:tcp&udphttps 握手過程? 如何防攻擊的
  8. 算法:堆排序實現、兩個超大文件求交集
  9. 手機來電顯示的推銷黑名單是如何實現的?

二面

  1. 根據簡歷上作過的項目發問。 e.g: 爲何要自定義實現ImageLoaderLruCache 實現原理;LinkeHashMap 是如何保證有序的?Bitmap#recycle到底釋放了啥? Handler原理,Looper#loop以後,消息是如何插入到消息隊列的?
  2. 組件化解耦 如何實現的?
  3. 進程保活機制,談了下 Jobscheduler 。根據現有的方案如何更加優雅實現保活(不流氓)
  4. 長鏈接這塊有積累嗎?
  5. 網絡庫是如何封裝的,實現了哪些功能
  6. Http緩存,實際項目中用到的緩存策略
  7. 內存泄漏,java 幾種引用方式,jvm 內存模型,java堆和java棧的區別,程序計數器有多少個?
  8. 進程間通訊?Android爲何用Binder
  9. 美團的walle實現原理
  10. Arouter原理
  11. Tinker熱修復,爲何選擇Tinker, 熱修復基礎原理
  12. Activity Window View 三者之間關係
  13. EventBus 原理
  14. 混合式開發,jsjava互調 ,瞭解哪些混合式開發框架,RN的優缺點

三面

重點挖掘所作項目自己,這裏就不一一列舉了api

  1. 對所作項目深刻挖掘進行提問 e.g jenkins
  2. 熱修復原理:類加載方案、底層替換方案、Instant Run方案
  3. 新技術、新動態的瞭解狀況
  4. 一致性hash算法原理
  5. 數據結構:動態規劃 實現整數序列的最大連續子序列問題
  6. 團隊的一個狀況介紹,組內 意見不一致,如何解決的?

四面

  1. 總監:也會考察項目自己、溝通能力、解決問題能力
  2. HR面:(不過多闡述)

以上的一些面試題,僅供參考,每一個人狀況不一樣,所問的確定也不同!!!緩存

3、總結

面試前的準備

  • 縱向深刻、橫向拓展。除了Android專業方向外,時下的熱門技術(e.g 混合式跨平臺框架 ....)也須要關注、學習,保持一個擁抱變化,客觀看待、接納的心態;計算機原理、網絡,操做系統也須要關注,這些基礎學科仍是很重要的,關於這點不少人持有不一樣見解,這裏筆者搬運一個小馬哥演講視頻 ,詳細戳我
  • 拋棄掉一口吃成大胖子的思想。部分面試者想盡量多的把一些知識點複習完,其實這不太可能實現,因此心態要擺正!
  • 簡歷上的項目須要重點關注
  • 模擬面試,能夠找一些信得過的小夥伴進行一次「演練」;視我的狀況而定
  • 小試牛刀。大部分面試者都會找一些小公司「練練手」找找感受,而後再去本身心儀那家面試。司空見慣,值得一試!

面試後的體會

  • 心態很重要,偶爾緊張怎麼辦?正常現象,即便面試失敗,就看成一次學習的經歷罷了!
  • 不要輕易說「不知道」(前提:只知其一;不知其二的問題)。儘量把你所瞭解的表述出來,有些面試官可能會引導你去思考。實在不懂得就主動去請教
  • 儘量的主動,除了回答好問題自己,也能夠適當對知識面進行拓展
  • 適當表達出你想加入貴公司的意願

鄙人的一些挫見,若有不到之處,望道友海涵網絡

相關文章
相關標籤/搜索