個人情況
跟人均211的同學比起來,學校真的很渣渣了,由於帶學院結尾,被網易認為三本不給面試機會_(:зゝ∠)_。廣東人,說起普通話來很重的口音,面試時緊張的時候別人更是聽不清楚我說什麼,很吃虧。
按時間順序目前面試了cvte,吉位元,小米,位元組跳動,阿里,騰訊WXG,七牛雲,拿到七牛雲HR,騰訊的offer,阿里offer。
面試情況學習情況
Android的入門主要學習了《第一行程式碼》
Android進階學習《Android開發藝術探索》,面試必讀,重點知識我反覆看了好多遍。
Android的面經學習簡書釐米姑娘,也是我騰訊的內推人,非常感謝她。
java基礎學習了《java程式設計思想》,看原始碼。
java總結學習《碼出高效》,這本書對知識點總結的很好,面試回答的時候我都是根據這本書的總結來回答的。
jvm學習《深入理解java虛擬機器》,必讀,我是背了重點的內容,對於安卓來說,只需要熟悉重點章節就可以了。
計算機網路:《計算機網路》謝希仁的,熟悉重點部分就可以了
專案兩個自己做了一個學校駕校的小應用針對阿里面試,寒假之前做了語雀的app獎項acm獎牌0,演算法超級渣,《劍指offer》都沒刷完
省裡面超級水的應用開發比賽三等獎,二等獎
騰訊一面
(一面面試官很nice,但是發簡訊約時間之後,鴿了我4個小時,我上課時打過來,約晚上,結果鴿了我三天,之後我主動發簡訊約時間,答應了之後結果又鴿了我。。。orz)
1.自我介紹
2.自我介紹時說過自己看過EventBus原始碼,然後讓我談談事件匯流排的理解。
3.EventBus會有什麼問題嗎?
4.EventBus、介面回撥、觀察者模式的使用場景說一下。
5.專案什麼地方用到資料的持久化,說一下。
6.Activity的生命週期,彈出dialog和一個activity的dialog生命週期有什麼區別?
8.Activity程序的優先順序。
10.service兩種啟動模式,區別
11.兩種啟動模式,如果我在退出Activity的時候沒有退出service會怎麼樣。
12.設計一個圖片瀏覽框架,(執行緒池,lru快取,brabra的說了一堆)。
13.有一個很大很大的圖片載入到記憶體上,不能降低清晰度和壓縮圖片你怎麼解決?(提示我區域性顯示?我沒懂)
14.如何適配不同廠商的手機,然後設計模式,brara又說了一大堆,最後還說到jetkins自動部署上面去了
15.AsyncTask原始碼分析,每個方法在哪個執行緒執行的?
(一面面試官真的很好,有些你不懂的他還舉例教你,一面我覺得難度比較大,常規的背題肯定會不滿意的,題目比較少,引申出來的知識點卻很多,大部分時間都是我在談自己的解決思路然後分析到知識點的原始碼上面去,比如說像如何防止微信不被殺死這種,其實我說了常用的程序保活思路,它還要我分析其他情況)
面試官說我不錯,叫我明天準備二面,電話一掛,我就愉快地去吃飯,吃著飯看狀態灰了,這誰頂得住啊~
回去看完電影之後,再查一下狀態,變成了複試,估計之前是到時間簡歷被釋放了。
二面
(二面總監/面委,由於開會,鴿我半個小時)
1.上來大數相乘,我做的眼淚都快流出來了。
2.put和post的區別,應用場景。
3.看了我的flutter專案,我改了一個框架,問我這個框架。
4.讓你設計一個跨平臺的框架,你怎麼設計(這裡我談了flutter的架構)。
5.https的流程。
6.fragment的懶載入。
7.一個商場裡有一個電影院,你會把廁所建設在哪裡,說一下你的理由?
hr面
(鴿了我20分鐘,騰訊都是大豬蹄子?哈哈~~開玩笑,面試官真的很忙,有時候換位思考一下,心態好點)
1.自我介紹
3.對我們了解嗎?
4.願不願意來
5.家裡的情況
6.什麼時候可以來實習,可以實習到什麼時候(入職)
阿里一面
1.自我介紹
2.自己看過的原始碼,說一下?
3.接下來就EventBus的東西了,還是老問題,優缺點,有沒有什麼問題,列舉了很多場景,我看原始碼看的比較細,根據自己看過的東西做回答和分析,然後還是,介面回撥和觀察者模式之間的選擇。
4.問我你看過這麼多原始碼,你覺得什麼東西最重要?
5.答了原始碼中看到了大量的反射使用,多執行緒方面,Collections,資料結構這些。
6.問我多執行緒,引申出handler,我從handler的原始碼去解釋
7.handler引申出的記憶體洩漏,為什麼靜態內部類不會持有外部物件
8.接下來還是場景題,圖片框架的實現,涉及到的Lru快取,執行緒池,執行緒池該如何分配執行緒數量。
9.APP從開啟到顯示之間發生的事情。
10.為什麼java可以呼叫c/c++的函式,呼叫jni發生的事情說一下。
11.動畫種類,使用動畫的步驟,有沒有看過動畫框架的原始碼。(面試官說我在應用層上基礎知識很好,懂得去看原始碼學習,但是android深度不夠,應該要往Framework和c/c++那邊學習)
二面
1.自我介紹
2.還是自己對EventBus的理解。
3.學習Android的過程
4.專案遇到的問題,怎麼解決的
5.回答過程中提到csrf,問原理
6.對公司有什麼要求
7.IPC
8.socket的連線過程(說我這方面的技術和興趣不錯,但是缺少大型專案的經驗,考慮不夠全面,如果有一個機會給我就很好了。)
三面
1.自我介紹
2.詳細說我第一個專案
3.http快取
4.如何把ip地址儲存在一個int 變數裡面?
5.詳細介紹第二個專案(30min,面試官說我自己對技術的熱情很不錯,讓我保持下去,口頭直接讓我過,讓我等hr)
HR面
1.上來突然莫名其妙問我一堆與專業無關的,還問我這個專業跟計算機有什麼關係(我是軟體工程),我:我有點懵(原來看錯簡歷了)
2.從小到大最有壓力的事
3.數學怎麼樣
4.你考上這個學校是正常發揮嗎? 我回答的是!/(ㄒoㄒ)/~~ 很涼
5.什麼事情讓你覺得自己喜歡移動端
6.哪裡人,想去哪裡(hr面只有15分鐘,感覺不太好)(昨天收到offer意向書,整個流程橫跨兩個月)
總結我也不是什麼大佬,最後嘮叨幾句。
另一方面就是讓面試官看到你對這個崗位的熱情,能夠自發性地去學習與崗位相關的東西。