開頭
面試時間:2021.2.9 1~3面、2021.2.13 4~6面、2021.2.26 HR面
面試部門 + 崗位:商業化 - 高級 Android 開發工程師
面試感想:整體面得比較累,基礎面、交叉面、Boss面,前前后后對接了 6 個面試官 (離當初給我說的 3面+HR面 貌似差得有點遠¬_¬) 。算法到 Boss 面都還在寫,不過慶幸的是面試官沒有為難我 (老實交代了算法沒怎么準備,哎…),算法都不太難。整體項目比基礎問得多。
面試建議:算法、基礎是敲門磚,項目是試金石,良好的面試形象是加分項。
簡歷上列舉的項目多想想,為什么做這個項目?做這個項目的目標是什么?我的方案是什么?相對其他方案我的方案優勢是什么?項目的收益是什么?項目的架構圖是否能畫出來?項目中使用的主要框架原理是否前前后后都清楚?(我大概就是項目拯救了自己,基礎準備有點倉促T^T)。
如果是現場或視頻面試,良好的面試形象還是比較有必要的。在部門 TL 面的時候,就提到我相對很多其他面試者比較好的一點就是,整個人的形象狀態比較好,沒有讓人覺得很疲憊。
一面
1.自我介紹
2.應用啟動流程,activity 啟動流程,為什么要每個應用有一個自己的虛擬機,這個虛擬機和JVM的關系。
3.hashmap的基本原理
4.來說一說,在5.0以上和4.0加載dex時的方式有什么區別?
5.說一下你了解的Android虛擬機有哪些?
6.這兩個虛擬機有什么區別嗎?(上題說了ART虛擬機,dalvik虛擬機)
7.Handler持有Activity的引用會造成內存泄漏,那么如何避免?
8.ANR 的原理說一說
9.三次握手,四次揮手簡單說下
10.okHttp的原理了解嗎?使用時是如何對它封裝的?
11.http和https什么區別?
12.算法題:雙鏈表反轉
二面
1.Acitivty的四種啟動模式與特點。
2.廣播使用的方式和場景以及廣播的幾種分類。
3.FrameLayout 、 LinearLayout 、 RelativeLayout 各自特點及繪制效率對比。
4.Android中的MVC、MVP模式。
5.App的啟動過程。
6.Android怎么加速啟動Activity。
7.Bitmap的四種屬性,如何加載大圖(inJustDecodeBounds)。
8.Touch事件分發機制和沖突處理。
9.Android IPC:Binder原理。
10.Class文件結構(常量池)。
11.Java內存模型結構(主內存和工作內存)及操作,原子性可見性和有序性等。
12.啟動線程和安全的終止線程。(interrupt)
13.TCP可靠傳輸原理實現(滑動窗口)。
14.Cookie與Session的作用和原理。
15.Https加密原理。
三面
1、TCP/UDP的區別,有看過具體報文的信息嗎
2、你覺得開發一個SDK,需要注意哪些地方,有沒有做過SDK性能測試
3、有了解過音視頻的編解碼嗎
4、開放題:讓你加載一個200M左右的GIF,如何實現及優化,不可降低畫質
5、反問環節
HR面的話就不列舉啦,就是一貫的聊一些職業規劃,了解一下你的性格特點之類的。
最后
希望大家能有一個好心態,想進什么樣的公司要想清楚,并不一定是大公司,我選的也不是特大廠。當然如果你不知道選或是沒有規劃,那就選大公司!希望我們能先選好想去的公司再投或內推,而不是有一個公司要我我就去!還有就是不要害怕,也不要有壓力,平常心對待就行,但準備要充足。最后希望大家都能拿到一份滿意的 offer !如果目前有一份工作也請好好珍惜好好努力,找工作其實挺累挺辛苦的。
這里附上上述的面試題相關的幾十套字節跳動,京東,小米,騰訊、頭條、阿里、美團等公司19年的面試題。把技術點整理成了視頻和PDF(實際上比預期多花了不少精力),包含知識脈絡 + 諸多細節。
由于篇幅有限,這里以圖片的形式給大家展示一小部分。可以點擊藍色字體免費獲取
c/DSkNLaERkbnFoS0ZF)
[外鏈圖片轉存中…(img-c810cOaO-1621870951502)]