面試無人問津到手握螞蟻金服、快手等offer,我是如何準備大廠Android面試的?

前言

教育背景:

16屆國防科技大學軟件工程專業畢業
主修:Android移動應用開發
輔修:JAVA開發,C/C++等(數據庫、jsp、數據結構與算法那些編程專業都要學的課程就不一一列舉了)
時間過得飛快,眨眼間又是一年畢業季了,今年情況比較特殊,疫情的影響導致各行業的工作都不好找。在這種嚴峻的形勢下,怨天尤人,乃庸人做法;學習進階、提高自身核心競爭力,纔是上上之策!

每個人都擁有大廠夢,我也不例外,學習Android開發的初衷,便是進大廠。在衆多互聯網大廠中,最終選擇了阿里媽媽。“年輕、活力、富有激情”是我聽到得最多對它的形容詞,所以毅然決然,投遞了簡歷。希望自己能夠在這個最大的舞臺上施展拳腳。

以下分享這次面試螞蟻金服的面試題,另外還對自己的面試做了一些總結,總結裏含有一些學習方法和資料,需要的朋友可以直接(點擊我)無償分享!

螞蟻金服四面斬獲Offer,定級P5

一面(五十分鐘左右)
一面是一個電話面試,下午2點左右特地找了一個地方電話面試,2點準時電話就過來了,守時這方面還是專業的,時間有點遠了,題目大致如下。。。
1.自我介紹

2.基本學習經歷教育背景。

3.有沒有實習經歷?我回答:有兩家家小公司共7個月的實習經驗。然後會順着往下問爲什麼沒有留下,做過哪些項目,學到了什麼等等

4.問到了java 中==和 equals 和 hashCode 的區別(這個題感覺面試必問,好多面經都有這個題)

5.進程和線程的區別

6.什麼是 ANR 如何避免它?

7.點擊應用圖標,打開應用的過程

8.activity週期,啓動模式

9.Handler機制

一些比較基礎的東西,對於書本的消化,基本上沒有什麼難度

二面(70分鐘左右吧)
二面是視頻面試,是個週六下午
1、HTTP & HTTPS區別(基本都要問的)

2、socket.accept()函數對應着TCP三次握手中哪一次握手,哪個函數代表連接建立完畢,四次揮手的過程?(這個也基本都問)

3、舉例工作中用到的多線程的應用場景,線程同步的問題

4、圖片加載框架?如何加載100M的圖片卻不撐爆內存?(這題網上我都看吐了)

5、Android 中進程的優先級?

6、自定義View、View 的繪製流程、MotionEvent 是什麼?包含幾種事件?什麼條件下會產生?

7、說下你所知道的設計模式與使用場景

三面
過了整整一週到了隔週五上午,接到了第三面的面試通知,約的是隔週三上午 10:30 。第三面面試官時不時的面帶笑容,給人很輕鬆的感覺。
1、Looper消息機制,postDelay的Message怎麼處理,Looper中的消息是同步還是異步?什麼情況下會有異步消息

2、對MVC和MVP的理解,Handler的內存泄漏問題具體是什麼,解決方案有什麼,空數據的時候Handler的阻塞問題

3、ListView和RecyclerView區別?

4、Handler機制?子線程可以用Handler嗎?

5、HashMap原理

6、你在項目中碰到什麼比較棘手的問題?怎麼解決的?

7、找到一個無序數組中第一次出現最多次數的元素

8、問到framework,線程同步這些。

9、反問環節(一般都會有這個環節,個人建議如下)
問技術面試官:問問技術團隊多少人、技術氛圍怎麼樣的、如果有可能問問他們的技術棧是什麼,圍繞着技術來問

問HR:轉正的考覈標準啊,薪資待遇啊,公司現有規模啊、發展情況啊,表現出對這個公司很感興趣就行了

注意一點:考慮好你得目標公司的規模和行業。
小微公司:不看項目隨便問,沒有邏輯性,閉了眼睛瞎問,對於這種會就會,不會就不會,別慫,反正也不想去。
稍微大點的廠:一般是圍繞項目去問,然後衍生出一些技術問題來細問,問的比較深的時候別慌,把你的理解說出來,然後說其他的就不知道了,體現出你的思考和應變能力。基本上面試就這些的,剩下的就是盡人事聽天命了,記住,面試不上有時候不是你得問題,很可能是公司其實不急着找人,或者面試官不行。
四面(HR)
1、自我介紹。

2、自身有什麼優勢?什麼劣勢?

3、其他公司的面試體驗怎麼樣?

4、學校參加過哪些活動、組織者or參與者

5、薪資預期,理想的工作模式等等

阿里巴巴面試題答案:點擊【答案】即可領取!

學習經驗總結

(一)調整好心態
心態是一個人能否成功的關鍵,如果不調整好自己的心態,是很難靜下心來學習的,尤其是現在這麼浮躁的社會,大部分的程序員的現狀就是三點一線,感覺很累,一些大齡的程序員更多的會感到焦慮,而且隨着年齡的增長,這種焦慮感會越來越強烈,那麼唯一的解決辦法就是調整好自己的心態,要做到自信、年輕、勤奮。這樣的調整,一方面對自己學習有幫助,另一方面讓自己應對面試更從容,更順利。

(二)時間擠一擠,制定好計劃
一旦下定決心要提升自己,那麼再忙的情況下也要每天擠一擠時間,切記不可“兩天打漁三天曬網”。另外,制定好學習計劃也是很有必要的,有邏輯有條理的複習,先查漏補缺,然後再系統複習,這樣才能夠做到事半功倍,效果纔會立竿見影。

(三)不斷學習技術知識,更新自己的知識儲備
對於一名程序員來說,技術知識方面是非常重要的,可以說是重中之重。要面試大廠,自己的知識儲備一定要非常豐富,若缺胳膊少腿,別說在實際工作當中,光是面試這一關就過不了。對於技術方面,首先基礎知識一定要紮實,包括自己方向的語言基礎、計算機基礎、算法以及編程等等。

結合自身的一個學習經歷,總結了一套非常系統的複習包,包括思維腦圖、Android基礎知識、JAVA知識點彙總、Android擴展知識點、Android開源庫源碼分析、設計模式彙總、Gradle知識點彙總、常見面試算法題彙總等等。

1、Android基礎知識:
筆記裏的知識點非常齊全,囊括了Activity、數據儲存、屏幕適配、消息機制、線程異步、webview、進程、ipc、數據儲存等大量知識點,每一個知識點都有非常詳細的解析,這本萬能寶典在手,不信還有搞不懂的面試題!

2、JAVA知識點彙總:
筆記裏的知識點非常齊全,囊括了JVM、static、併發、Java反射、Spring原理、微服務、異常處理、數據庫、數據結構等大量知識點,每一個知識點都有非常詳細的解析,這本萬能寶典在手,不信還有搞不懂的面試題!

3、手撕架構技術篇
該篇內容囊括了以下專題的高頻面試題、實戰文檔以及使用總結。

4、 最新大廠面試專題
這個題庫內容是比較多的,除了一些流行的熱門技術面試題,如Kotlin,數據庫,Java虛擬機面試題,數組,Framework ,混合跨平臺開發,等

5、 實戰電子書
關於實戰,我想每一個做開發的都有話要說,對於小白而言,缺乏實戰經驗是通病,那麼除了在實際工作過程當中,我們如何去更瞭解實戰方面的內容呢?實際上,我們很有必要去看一些實戰相關的電子書。目前,我手頭上整理到的電子書還算比較全面,HTTP、自定義view、c++、MVP、Android源碼設計模式、Android開發藝術探索、Java併發編程的藝術、Android基於Glide的二次封裝、Android內存優化——常見內存泄露及優化方案、.Java編程思想 (第4版)等高級技術都囊括其中。

6、Android小白到Android工程師的系統學習視頻
關於視頻這塊,我也是自己蒐集了一些,都按照Android學習路線做了一個分類。按照Android學習路線一共有八個模塊,其中視頻都有對應,就是爲了幫助大家系統的學習。接下來看一下導圖和對應系統視頻吧!!!

Android高級工程師進階思維導圖

對應導圖的Android高級工程師進階系統學習視頻

寫在最後
我已經順利拿到了offer,大家也要加油,希望都能找到自己想要的工作!

給大家一些建議

1.遇到問題,不要沒有進行仔細分析,就直接百度和谷歌
2.學習知識的時候,不要沒有自己的思考和理解,死記硬背
3.要記得深入追究一個問題的本質原因
4.一定要有自己知識點總結和梳理
5.學到知識點,沒有很好的實踐,動手能力不夠
6.要自己的學習的方法
7.確定目標和找到有效的學習方法

最後提醒:以上整理的所有PDF,均可以免費分享,有需要的朋友,

直接點擊【 我要成爲Android高級工程師 】加入我們的圈子領取資料,和我們一起學習交流吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章