2019 阿里、頭條、騰訊、美團 Android面試題,祝你斬獲offer

職場危機感彷佛是每一個人在職業生涯都會遇到的話題,天天都有形形色色的人面臨這跳槽擠破頭要進大廠。我對這種危機處境和本身曾遇到的問題進行了一番思考, 參考了其餘人的一些結論並結合自身的經歷,寫出了這篇面試題。經過這篇文章,但願能給你們一些幫助祝你斬獲心儀offer,也歡迎你們一塊兒討論、發表建議,化緊張爲動力,讓危機變機遇。面試

一 阿里

一面(3/8 21:17,電話,61 分 47 秒)算法

  • 自我介紹
  • 項目來歷
  • 上過或自學過哪些計算機課程,對計算機網絡挺熟悉的吧
  • 對 HTTPS 有沒有了解,有沒有寫過相關代碼
  • 老闆有 2000 元給我和同窗分錢,首先由我提出分錢方案。若是同窗不一樣意,則總額變爲 1000 元,並由同窗提出分錢方案。若是這時我不一樣意,則倆人各拿 100 元。請問一開始我應該怎麼給出分錢方案?
  • 假設有一個線程在取隊列中的消息,怎麼中止這個線程
  • 讀過哪些源碼,分別說一下 Android 和 Java 的
  • 讀過哪些 Android 開源庫源碼
  • 項目中遇到過什麼難題
  • 印象深入的幾回學習經歷
  • 看你用過 Ubuntu,平時是否是用 Linux,熟悉Linux嗎,都用它幹什麼
  • 有什麼問題想問的

二面(3/12 20:30,電話,82 分 33 秒)數據庫

  • 介紹一下項目
  • 一連串問了多個問題關於項目中給設備配置入網過程的細節
  • 項目中與設備通訊的數據格式,還能夠用哪些數據格式,作過什麼優化
  • 設計一種變長的傳輸數據格式
  • 項目中有沒有作過一些監控日誌
  • 設計一個日誌監控和上傳模塊,深刻問了不少細節和考慮的方面
  • Android 各個版本的變化
  • 介紹一下 Flutter 框架
  • 平時怎麼了解和學習新知識的

三面(3/21 15:31,電話,30 分 57 秒)數組

  • 問了不少項目細節,關於本地存儲、音樂播放等基礎模塊的封裝
  • 有沒有把音樂播放模塊開源出去
  • 項目中解決過什麼難題
  • HTTP/2.0 有什麼變化
  • 在一個手機屏幕上有兩列(相似於瀑布流),給你一些高度不一樣的 item,怎麼擺放才能讓這兩列的總體高度最小?

HR面(3/28 20:16,電話,14 分 47 秒)緩存

  • 爲何來阿里
  • 有什麼優點能讓你來咱們部門
  • 業餘有什麼愛好
  • 解決難題的經歷
  • 遇到過什麼挫折
  • 選擇上海仍是杭州

二. 頭條(一二面:3/23 晚,現場。三面、HR面:3/26 下午,現場。)

一面性能優化

  • 自我介紹
  • 項目來歷
  • 項目中本地存儲怎麼作的
  • 訪問本地存儲的類應該怎麼設計
  • 說一下對 BInder 的理解
  • BInder 紅黑樹的節點是以什麼區分的
  • SurfaceView 原理
  • HTTP 響應內容
  • Retrofit 內部實現
  • 動態代理的原理
  • EventBus 內部實現
  • 手寫二分查找

二面網絡

  • 看過哪些書
  • HashMap 版本變化和原理
  • 手寫快速排序並解釋
  • 各類排序的複雜度和穩定性
  • 類成員的權限怎麼定

三面架構

  • volatile 和重排序
  • Java 內存模型
  • 引用計數和可達性分析
  • Android 界面刷新原理
  • Android 性能優化有哪些方法
  • 觀察者模式、責任鏈模式
  • OkHttp 內部實現、有沒有緩存
  • 從輸入一個 URL 到看到一個頁面的過程
  • 看過哪些書
  • 是否是實驗室作開發的同窗中最強的

HR面框架

  • 爲何來頭條
  • 做爲項目負責人,完成了哪些工做
  • 實習時長、何時來

三. 騰訊

一面(3/12 19:00,電話,40 分 34 秒)性能

  • 能不能來深圳
  • 介紹項目
  • 爲何用 SharedPreferences,怎麼存 JSON
  • 項目中遇到什麼難題
  • 廣播和組播
  • 數據庫優化

二面(3/15 14:50,電話,17 分 46 秒)

  • 上過哪些計算機課程
  • Java 類加載
  • Android 類加載,DexClassLoader有什麼用
  • 散列表有哪些解決衝突的方式
  • LinkedList 和 ArrayList 比較
  • TCP 的擁塞控制
  • 能不能來深圳

四. 美團(3/14 下午, 現場,大約 4 小時)

一面

  • 自我介紹
  • 項目來歷
  • 爲何喜歡 Java,而後問了一些 Java 的特性
  • 線程和協程,爲何協程比線程效率高
  • RecyclerView 圖片錯位問題
  • Fragment 的 commitAllowStateLoss 方法
  • Activity 與 Fragment 怎麼通訊
  • Handler 怎麼解決內存泄漏問題
  • 其餘內存泄漏狀況
  • 單擊事件和雙擊事件哪一個先觸發
  • 不考慮具體頁面,怎麼從根本上優化界面卡頓
  • SurfaceFlinger、VSYNC
  • 描述一下 Handler 的原理
  • 依次打印二叉樹每層最左邊的結點

二面

  • 怎麼判斷對象是否要進入老年代
  • Eden 和 Survivor 的比例和回收規則
  • 新生代爲何用複製算法
  • 說一下對 Binder 的理解
  • 說一下 ActivityManagerService、ActivityManagerNative 等幾個類的區別
  • 手寫各類單例模式
  • 跳臺階問題
  • 求兩個鏈表的交點
  • 判斷二叉樹是否左右對稱(只考慮結構對稱,不考慮值)

三面

  • MVP 及 MVP 怎麼解決內存泄漏
  • 項目架構
  • 說一下 SharedPreferences
  • 給一個數組,判斷是否存在一對相等的前綴和與後綴和
  • 平時怎麼學習的
  • 有什麼想學的新技術、學習計劃

HR面

  • 對咱們部門的印象怎麼樣
  • 有沒有參加別的面試
  • 若是阿里和美團都要你,你選哪一個
  • 家是哪兒的
  • 瞭解阿里面試狀況
  • 實習時長、何時來
  • 瞭解騰訊面試狀況

喜歡的話點個讚的吧,後續我會將面試過程當中更加詳細的東西分享出來

相關文章
相關標籤/搜索