1. 程式人生 > 其它 >學習指南!三面美團、四面阿里成功斬下offer,Android開發者必看

學習指南!三面美團、四面阿里成功斬下offer,Android開發者必看

阿里面試

自我介紹

首先要介紹自己的專案經驗和個人的擅長點,因為面試官主要考察你的表達能力和語言精簡能力。

簡歷的編寫其實這裡可能需要注意幾點;
1.標題的直接按照姓名-幾年工作經驗-應聘崗位格式來填寫。例如 黃銘——四年工作經驗——Android開發高階工程師。因為要知道,HR篩選簡歷是非常快的,你要在第一時間就讓他看到他想要看的資訊。HR一開始最關心的就是工作年限和崗位,你直接在標題欄用最大的字型寫出來會比很多人介紹了半天專案最後寫年限要好得多。

2.個人資訊寫最前面。 個人資訊欄其實不用寫很多東西,最主要的就是姓名、聯絡方式、性別、如果學校是名校那麼就寫上,如果本科學的是計算機專業也可以在這裡寫上,如果都不是就最好放到最後去寫,因為最前面的東西永遠是最先看到的內容,也是你最有競爭力和賣弄的資本。

阿里技術一面-35min

自我介紹

Android

  • 有沒有遇到OOM問題(有遇到記憶體洩漏問題)
  • Handler機制
  • ThreadLocal
  • Activity啟動到載入View過程
  • View繪製過程
  • LinearLayout (wrap_content) & TextView (match_parent) 最終結果???
  • OKHttp(1. 為什麼選擇它? 2. 效能瞭解不?3. 內部有哪些設計模式)
  • 瞭解EventBus嘛?

設計模式

  • 用過哪些設計模式
  • 觀察者舉例

網路

  • HTTP & HTTPS區別

其他

  • 為什麼選擇飛豬
  • 專業問題
  • 參加的比賽

阿里技術二面-1h掛

自我介紹

專案

  • 為什麼選擇OKHTTP框架
  • 載入圖片框架?(學一下Glide)
  • JSON解析框架?(學一下Gson,FastJson)
  • 技術選型?
  • 頁面個數?
  • OSS上傳憑證怎麼設計快取?怎麼加密?(加密演算法??)
  • 還有哪些專案可以說的?

Android

  • Activity生命週期?啟動透明Activity生命週期?按Home鍵生命週期?
  • 後臺殺死APP後怎麼恢復資料?
  • 一個APP可以多程序嘛?
  • ListView和RecyclerView區別?
  • RecyclerView卡頓怎麼排查?
  • RecyclerView怎麼實現多Type?
  • RecyclerView的ItemView層級過深怎麼優化?
  • Android多程序?
  • 怎麼設計Android執行緒間通訊?
  • Handler機制?子執行緒可以用Handler嗎?
  • ANR?

Java

  • private protected public 關鍵字的用法區別!!!
  • 介面,抽象類區別?抽象類要不要實現介面的方法???
  • Map的執行緒安全?讀多寫少選哪個集合?(CopyOnWrite,不懂原理沒敢說)

網路

  • HTTP/HTTPS區別
  • TCP瞭解麼?握手與揮手過程?
  • 長連線?
  • push怎麼實現?

騰訊

提前批一面-35min

專案介紹

  • 實現的功能,基於OKHTTP實現網路請求

HTTP(s)

  • 介紹下HTTP協議
  • HTTPS公鑰暴露怎麼辦
  • HTTP分段上傳檔案怎麼保證正確
  • HTTP快取

Java

  • 程序 執行緒區別
  • 子執行緒間通訊
  • 解決死鎖的辦法,怎麼判斷髮生死鎖

演算法題

  • 奇數偶數陣列,重新排序保證順序不變,奇數在前偶數在後
  • 2數/3數之和

提前批二面-30min-掛

自我介紹

專案介紹

  • 專案梳理
  • 圖片壓縮演算法? 聊聊關於Android圖片壓縮那點事兒
  • Bitmap JPG區別 影象處理:JPG、PNG及BMP的區別?
  • 斷點重傳?怎麼動態確定範圍?Android 實現斷點上傳檔案
  • 斷點下載?CRC原理 檔案校驗MD5、SHA1、CRC32、sha256、cksum

設計模式

  • MVC優點缺點
  • MVP中的MVC的C實現在哪
  • 單例模式的餓漢與懶漢的選擇,使用場景Java單例模式的不同寫法(懶漢式、餓漢式、雙檢鎖、靜態內部類、列舉)

HTTPS加密方式

騰訊正式批測開一面-25min

  • Crash
  • ANR怎麼解決
  • 設計世界盃32強對戰資料結構
  • 2個球 100樓找那一層摔下來會壞
  • 測開具體工作

騰訊正式批測開二面-1h

專案

  • 聊細節

Android

  • 圖片,語音大記憶體資料的效能排查,定位?
  • Handler記憶體洩漏問題
  • ART Dalvik區別?
  • GC機制?
  • CountDownLatch原理?

演算法題

  • 不使用for查詢陣列最大值?

閒聊

  • 自我優勢

百度

百度一面-1h

自我介紹

專案介紹

  • 編碼規範有用嗎?

Android

  • Android四大元件安全性
  • Activity啟動模式
  • IntentFilter匹配規則,action和category區別?
  • Handler 阻塞為什麼不卡死?
  • 點選事件分發機制,onTouchEvent返回false? dispatchTouchEvent返回false?
  • Looper
  • 物件池,手寫物件池實現
  • ContentProvider原理
  • sp支援跨程序麼?怎麼解決跨程序,怎麼實現程序同步
  • 幀動畫實現: 100張圖,200ms顯示一張,讀取一張圖要400ms,怎麼解決避免卡頓(多執行緒讀)
  • Bitmap記憶體複用限制條件
  • 執行緒時間片分配原理

百度二面-45min

專案

  • 梳理專案
  • 難點
  • 技術框架

演算法題

  • 手寫二分法
  • 電梯狀態機設計

優缺點

  • 優點
  • 缺點
  • 專業

百度三面-45min

技術

  • 最長公共子串
  • 類載入機制
  • okhttp原理
  • 熱修復原理

其餘閒聊

  • 優點缺點
  • 大學遺憾
  • 組織哪些活動
  • 長期堅持的事情
  • 專業去向

網易

網易技術一面-1h

自我介紹

專案介紹

  • 華為解bug印象最深的

Android

  • TouchEvent傳遞過程? onTouchEvent返回flase怎麼辦?
  • 怎麼設計快取
  • Android資料持久化
  • 資料庫怎麼批處理(原理)
  • SP支不支援多執行緒?SP怎麼實現多執行緒
  • View繪製過程
  • Handler訊息機制

Java

  • B執行緒怎麼實現等待A執行緒完成工作
  • 執行緒怎麼結束工作 Java結束執行緒的三種方法
  • Java哪些方法支援中斷
  • 設計一個有限資源的請求
  • 怎麼設計物件池(物件的存與放回)
  • 執行緒池的執行緒什麼時候建立
  • Java中的鎖
  • 可重入鎖效能

筆試題

  • 兩個陣列交換一個值,讓和相等,找到這兩個值

網易技術二面-1h

自我介紹

華為實習

  • 參與的專案
  • 解的bug
  • 參與的程式設計規範說一下
  • Lint工具?

設計模式

  • 單例模式
  • volatile關鍵字原子性

Android

  • 程序間通訊方式(與linux程序間通訊區別)
  • Socket怎麼驗證安全性
  • 廣播(全域性 本地區別)
  • 怎麼實現檔案的多程序通訊(A程序改了檔案怎麼通知B程序讀取)
  • 二級快取怎麼設計(網路 資料庫 view間關係)

View

  • Activivty生命週期
  • onSaveInstanceState onRestoreInstanceState區別,呼叫時機
  • 廣播註冊應該在Activity哪個生命週期裡
  • 怎麼統計onCreate的次數
  • Fragment與Activity區別
  • Fragment生命週期管理
  • Fragment與ViewPager怎麼做到重複載入
  • View繪製過程 MeasureSpec的三種模式
  • Framelayout LinearLayout ReativeLayout怎麼做到View在右下
  • margin padding區別
  • gone invisible的區別
  • requestLayout、invalidate與postInvalidate區別
  • Android動畫 怎麼取消迴圈動畫 repeat模式
  • drawable與view區別 有哪些drawable

網易技術三面-50min

自我介紹

專案介紹不用說太細

Android

  • 圖片傳輸過程中URL加上預設大小如果是wrap_content怎麼辦
  • 圖片相關緩寸,編碼,記憶體複用
  • svg (其他圖片格式)
  • drawable mutate瞭解不
  • okhttp 橋接攔截器和快取攔截器
  • 設計自定義DNS解析器
  • 打點系統設計:寫檔案過程中會有buffer,此時程序被殺怎麼辦,怎樣設計日誌系統 打點日誌被使用者篡改怎麼辦,保證日誌安全性
  • 磁碟記憶體對映原理
  • 有沒有看過開源打點框架
  • 平時開發有沒有遇到過資源複用
  • 最近了解啥Android新動向不
  • 自己學習計劃

美團現場一天面完

自我介紹

專案

  • 實習專案
  • 專案最難點
  • 技術選擇
  • OSS STS憑證設計
  • Lint工具是編譯期的嘛?原理?

場景題

  • 美團首頁設計?
  • RecyclerView多Item的難點?

設計模式

  • MVP MVVM使用場景

HR

  • 有什麼offer現在?

  • 選擇offer依據?

  • 上海花費高?

  • 怎麼解決溝通問題?

總結

首先是感覺自己的基礎還是不夠吧,大廠好像都喜歡問這些底層原理。

另外一部分原因在於資料也還沒有看完,一面時憑藉那份資料考前突擊惡補個幾天居然也能輕鬆應對(在這裡還是要感謝那份資料,真的牛),於是自我感覺良好,資料就沒有怎麼深究下去了。

之前的準備只涉及了Java、Android、計網、資料結構與演算法這些方面,面對面試官對其他基礎課程的考察顯得捉襟見肘。

下一步還是要查漏補缺,進行鍼對性複習。

最後的最後,那套資料這次一定要全部看完,是真的太全面了,各個知識點都涵蓋了,幾乎我面試遇到的所有問題的知識點這裡面都有!在這裡也免費分享給大家,希望大家不要犯和我一樣的錯誤呀!!!一定要看完!


獲取方式:點選我的Gitee