2020年的春招太難了,很多小夥伴說不知道怎樣才能順利通過面試,明明這些技術性問題自己也清楚,但是每次面試官問到的時候還是答不上來,再或者說,之前有學過這一類的,或者做過同類型的專案,但是就是很擔心,不知道大廠到底問的一些什麼問題,今天我就將我的經歷整理出來,供大家參考學習。 碼字不易,希望大家也能點點關注!非常感謝!
一面(1hour):
1、自我介紹
2、專案介紹,技術點相關。
3、C++和Java區別,GC
C++不熟,只能說記憶體管理相關的問題,所以就問到了GC。然後說分代收集演算法。老年代擔保、元資料區從JVM移到了本地記憶體這些。
4、執行緒相關,Runnable和Thread的區別。
Thread類是實現了Runnable介面,平時使用起來可以使用start方法呼叫。執行緒池基本傳Runnable物件,平時也是執行緒池用的多,所以具體相關不太熟。
5、執行緒池
6、synchronized,volatile
7、繼承相關,多重繼承和介面
8、網路程式設計
9、UPD,TCP區別
10、最大的優點
11、最大的缺點
12、演算法,二叉樹中序遍歷,真是早起毀一天,竟然沒撕出來,我真想給自己兩耳光。不過面試官給我總結的很好,說要利用棧的特性,先進後出,所以要保證左子樹先進根結點再進,這麼思考之後就順利了很多。
二面(40mins):
1、介紹一下專案
2、Android四大元件,詳細講一下。
3、Launcher啟動APP的全過程。
icon存入口Activity資訊
AMS通知Launcher去pause。
Launcher通知AMS已經pause
AMS檢查程序是否已經啟動,如果不啟動則啟動程序。並且呼叫ActivityThread的main方法。
啟動之後通知AMS已經啟動
然後AMS將入口Activity資訊傳遞給APP。
APP啟動對應入口Activity,並且建立對應上下文並且呼叫Activity的onCreate方法。
4、程序間通訊,AIDL,Binder。扯了一會說程序間通訊平時怎麼做的,就說了一下AIDL相關的Demo實現什麼的。說到了自己程式裡面有拉起微信的這個功能(也就是廣播)。
5、設計模式了解嗎,平時用過哪些設計模式。
6、演算法題:輸入一個數n,代表有n個點,一個二維陣列,二維陣列代表相連的點,要求輸出連通起來的點。
如果n=6,陣列假設是{{1,2},{2,3},{4,5}},則輸出{{1,2,3},{4,5},{6}}
三面(<30分鐘):
1、自我介紹
2、公司實習期專案
說了RePlugin框架原理,說了ffmpeg動態連結庫開發方面的失敗經歷,說了Android的適配,和最近影響到的AndroidQ相關新特性的適配。
3、自己大學生活中攻克的最難的技術難點。
4、什麼情況下會壓力特別大,怎麼處理的。
5、職業規劃