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、職業規劃