作為去年裁員大軍中的一員,為了準備年初的面試真的是勤勤懇懇誠惶誠恐啊。簡單介紹一下,目前5年半開發經驗,工作地點在上海,面的是Android高階崗,有一個認識前輩內推的。面試之前對華為做了大量的瞭解,而且反覆刷了不下300道面試專題,面試的時候才發現這些題真是沒白刷!
華為的面試基本就是群面,技術面,綜合面,不同的是華為最後還有英語面
1.群面
群面是分兩組討論彙報。彙報時面試官不會只讓一個人說,會指派其他1~2位同學彙報。然後就是補充發言了,這時候要主動說,被面試官叫到回答問題的一般是比較危險的。還有就是挑人評價組內表現情況,被評價表現不好的求生欲一定要強。群面主要是篩差的過程,只要對小組有貢獻就行,不能不說話。
2.技術面
第一輪面試大概一個半小時。我們過了一面的一起去吃了個必勝客
問過的面試題;
自定義 View!(重點!)
- View 的繪製流程。
- 自定義View的步驟。
- PhoneWindow 例項是在哪個類哪個方法中例項化的?
- Selector 是怎麼實現的?
- View的事件分發機制
- 為什麼移動後點選事件還在原來的位置?
這是我之前收集的很多面試相關的專題資料,確實很多都問到了。不過這次面試遇到的問題我並沒有單獨整理出答案來,一方面是時間精力有限,一方面是每次面試都不會是同樣的幾個問題。不過技術面肯定是一樣的,所以梳理出來給大家一個參考,希望對在找工作的朋友能有幫助。
Android 系統原始碼方面
- 事件攔截和分發程式間的通訊方式
- 應用的建立啟動流程
- Handler 是怎麼導致記憶體洩露的
- 第三方庫的原始碼,Glide、OkHttp 和 Retrofit MVC,MVP和 MVVM 開發模式優缺點
- 常用設計模式理解
- Binder 驅動和虛擬機器
資料結構和演算法,Java 的常用集合和實現原理
- ArrayListLinked
- HashMap 的實現原理
- 快取淘汰策略
- 紅黑樹和二叉樹
- 最短路徑規劃
- 海量資料篩選
- 手寫演算法!
效能優化
- 如何檢測一段程式碼的執行時間?
- 介面卡頓如何修復?
- 滑動不流暢怎麼處理?
- 50fps 有什麼辦法可以提高到 60fps?
- 記憶體洩露怎麼檢測?
- leakcanay 的原理?
執行緒和執行緒池
- wait() 和 sleep() 的區別?
- 同步鎖執行緒池的引數詳解?
- AsyncTask 原始碼引數詳解?
.......
我能記得的大概就這些了。再囉嗦一下,簡歷寫的好很重要!多寫點乾貨。面試官根據簡歷提問,面試官會死摳簡歷!超級細緻!
這些都是我在騰訊一個Android官方QQ群裡收藏儲存下來的面試題。包含了BAT各種大廠的高階原始碼面試題,也有java,資料結構這些基礎的面試題。最近在找工作面試需要這些面試專題,和了解行業情況的朋友,可以加一下試試;830344345。裡面有各種免費學習和麵試資料分享,還能跟大佬一起交流。
對於我們做技術的來說,往往接觸越深,就越感覺自身的不足。每一天都小心翼翼就怕哪天學不動跟不上發展了
綜合面和英語面
綜合面可以理解為是技術面的plus版本,還是會死摳簡歷,只是摳的更細了,也會問一些與工作崗位相關的問題,比如你對這個崗位有什麼看法什麼的,所以提前要做一些功課了。
還有些朋友會遇到boss面,這個就是聊聊天,比如“你最近遇到什麼挫折?”“用英語聊一下今天的面試經歷”。
英語面:這個很多普通研發類崗位的面試應該是沒有的,但層級高一點的一些崗位就會有了。英語測試分為3部分,測試完需要20min。
(1)句子跟讀5個,每個就15個詞吧,20秒的時間,時間很充裕。
(2)聽力單選測試15個,英語4級水平吧。
(3)話題講述。
整體的難度偏低。雖然我英語口語很蹩腳,但是對方也沒怎麼在意這塊,畢竟又不是面的客戶經理之類需要溝通的崗位。後面蠻開心的收到通知順利通過了面試考核,等下一步錄用簽約!