概述
感覺畢業后時間過得真快啊,從 19 年 7 月本科畢業入職后,到現在快兩年了,最近金三銀四期間想著找一個新的作業,前前后后花了一個多月的時間復習以及面試,最近基本上差不多了,把部分Android大廠的面試經驗分享給大家,祝想找作業的同學都能去自己心儀的公司!
A公司一面(1.5h)
- 自我介紹
- Android 生命周期中 onStart 里面干了啥?
- 介紹一下 Activity 的四種啟動模式
android:style和android:theme的區別- http 和 https 的區別,http 組成,http 請求的整個程序
- 影片種類及其作業原理
- 執行緒啟動方式,執行緒池原理清楚不?
- 講講 IntentService
- 知道哪些 Jetpack 組件?挑一兩個講講原理
- 有哪些 ipc 方式
- Sp 怎么支持跨行程?
- Binder 原理流程介紹一下
- window, view, activity 關系
- 軟硬體繪制區別,性能比較,具體繪制任務(如復雜影片)怎么選擇?
- 性能優化方式講一講
- 查找演算法有哪些?手寫二分查找
- 了解哪些跨平臺方案?
A公司二面(1h)
- 自我介紹
- 主要是摳實際專案,然后從中引出一些問題
B公司一面(1h)
- 自我介紹
- 問專案的一些細節,優化方案等
- SurfaceView, TextureView及View的區別,SurfaceView怎么控制它處于的層級
- Binder作業流程
- 介紹一下MVC,MVP,MVVM,你們專案用的是哪個?
- 對組件化的理解,你們是怎么實作組件化的?功能模塊之間互相參考會有什么問題?
- 記憶體優化工具,LeakCanary和MAT的原理
- JVM記憶體模型
- Java同步機制有哪些,volatile和syncronized區別
- HashMap和HashTable區別,ConcurrentHashMap分段加鎖的原理
- 二叉樹的前中后遍歷
- 演算法:判斷一棵樹是否是平衡二叉樹
- 演算法題:給定一個鏈表L1、L2,每個元素是為10以內的正整數,鏈表表示一個數字,表頭為高位, 求兩個鏈表之差,以鏈表形式回傳
- Java和Kotlin的一些區別,Kotlin的缺點?
- SurfaceView和TextureView的區別?
- 了解過哪些插件化的實作?
- 說說ARouter的原理
- 兩個業務組件模塊之間,怎么實作相互呼叫介面?
- 讓你設計一個下載功能,實作多個大檔案同時下載,考慮哪些(斷點續傳)?
- 有沒有音視頻開發經驗?
- 怎么處理記憶體泄漏?強參考弱參考?LeakCanary原理說一下,
B公司二面(1h)
- 問更熟悉Java還是Kotlin,答Java,所以問的都是Java相關的一些題
- HashMap擴容機制
- Java volatile原理和作用
- 樂觀鎖,悲觀鎖區別
- 執行緒池作業原理,各個引數的作用
- Android 三快取是什么?為什么需要它
- 講講做的業務開發中比較有挑戰的專案
- 還有一些比較常規的Android方面的問題,具體想不起來了
- 演算法題:查找單鏈表中倒數第k個節點,做完后面試官問是不是刷過這道題,那我再出一道吧...
- 題:給定一臺8核的手機,設計一個快速檢索出sdcard下所有檔案名為a的程式,回傳一個串列
B公司三面(1.5h)
- 主要深挖專案細節,有些不太清楚的最好別提,不然被挖到了很尷尬
- 平時怎么學習技術
- 在之前的公司,你對自己的成長滿意嗎
- 在面哪些公司,情況怎么樣
C公司一面(1.5h)
- 不記得了,,
- 演算法題:給定一個排好序的陣列,找出最左邊的某個指定數字的下標,
C公司二面(40min)
- 介紹專案,問一些細節,
- 你認為Java和Kotlin的不同點,在編程范式角度再介紹一下區別?Java的lamda和Kotlin函式物件區別?
- Kotlin協程為什么能以同步代碼寫出異步邏輯?
- 在協程上定義了一個區域變數,為什么在其中的其他執行緒里的協程也能訪問到?
- JetPack Compose有了解過沒?
- 性能優化;ConstraintLayout為什么效果好?為什么多了層級,性能可能會差很多?
C公司三面(1h)
- 依舊是專案細節,三面比較長的時間都是專案
- 為什么要離職,家是哪里的之類的問題
D公司一面(45min)
- 主要聊專案細節
- 執行緒池運行流程,你們平時怎么使用執行緒池?一個執行緒池夠嗎?
- 覺得作業經驗不長,說當應屆生面的,要求低,,,
D公司二面(1h)
- 自我介紹
- 不知道為啥,跳過了第二輪技術面,直接來了 leader 面,聊人生,聊性格,聊成才和氛圍比薪資重要等等
- 沒有技術問題
一些總結
畢業時選擇的是一家非一線大廠的公司,在這邊作業的近兩年時間里,業余學習了許多 Android 相關的專業知識(因為不忙),但是由于業務原因,且公司發展一直在走下坡路,我在專案上的經驗比較欠缺,因此考慮進一家大廠繼續磨練磨練自己,
這次面試也暴露出了我的一些問題,最主要的話還是業務專案經驗上不太足,所幸面試到的公司基本上都通過了,可能是因為我在 Android 基礎上還可以吧,面試也是一種能夠快速地發現自己缺點與不足的方法,可以更好地提高自己,
關于演算法題:個人感覺有些八股了,也比較討厭刷題,只寫了劍指offer和leetcode上hot前百中所有easy難度的題,以及幾道中等題,總共估計不超過100道吧,,,面試的時候感覺演算法題這塊都不是很難,大概也許可能是運氣好唄,
另外就是可以自己搞一些比較有亮點的地方,我的話是對 Android 圖形系統這塊比較熟悉,所以上面面試中有一些都涉及到了這個,像Surface這些,如果面試官也比較懂這塊知識的話,可以聊的很開心,
覺得不錯的點點贊昂,
最后的話就是 Android, Java, Kotlin 中一些常問的知識點了,這種就跟考試一樣,有些東西可能有些八股味兒,不過還是得準備準備,其實也不用花太多時間,最主要的積累程序,都在于日常的作業和學習中,
我下面就分享一下我自己覺得有點用的資料和面試題大綱,感興趣的朋友可以去我的GitHub上看看
Java知識點匯總

Android 知識點匯總

Android拓展知識點匯總


簡單的貼一下圖片,肯定不止我上面展示的這么多,推薦一下我的Android交流裙Android技術交流,不僅可以免費獲取以上資料而且還有Android學習路線圖,還能有一幫大佬為你擺平關于Android的技術問題~

大家不要忘了給作者點個贊哦~創作不易,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/281300.html
標籤:其他
