直接上正題:京東,位元組跳動,美團,嗶哩嗶哩,聲網,掌門教育,傳音控股,得物,哈啰出行,小紅書,其他廠經典題,
前言
前段時間在看機會,本文就是我對求職程序的一個總結,
同時,也作為一個面試官,來說說求職中需要注意的點,
- 各大廠的面試會考核哪些知識點
- 5年開發應該具備哪些技術要點
- 當下市場行情如何,真的很卷嗎?
面試題
上主菜
一面技術
京東
- GC原理,有哪幾種GC方式
- HashMap原理
- Hybrid開發流程、機制
- WebView記憶體泄露
- 包體積優化
- 自定義View需要注意哪些
- 事件分發機制
- ViewModel原理
- 螢屏旋轉ViewModel怎么做到保存資料的
- LiveData原理
- Flutter執行緒機制,單執行緒多執行緒
- 組件化開發
- 介紹一個自己的開源專案
- 有參與過別人的開源專案嗎
位元組跳動
- 瀏覽器輸入一個地址,按下回車,這個程序是什么樣的
- 簡單介紹一下TCP
- 簡單介紹一下Https
- 說說對稱加密和非對稱加密,說說公鑰
- 并發操作如何保證執行緒安全
- 鎖有哪些
- 簡單介紹一下HashMap
- Arraylist是執行緒安全的嗎
- 知道CAS、原子性嗎
- AtomicBoolean和boolean的區別
- 用過哪些設計模式
- 介紹一下觀察者模式
- 用過哪些排序演算法
- 介紹一下貪心演算法
- 介紹一下快排原理
- 演算法,給定一個有序不重復陣列,使用時間復雜度小于N方的方法,找到所有兩兩相加等于target值的組合:
int[] a={1,2,3,4,5,6,7,8} int target=7
美團
- Java物件生命周期
- GC機制
- Glide快取機制
- Glide對Bitmap是怎么優化的
- Okhttp請求流程
- Retrofit中的設計模式
- App啟動流程
- Apk打包流程
- 重構做了哪些作業
- 記憶體泄露,舉例場景
- LeakCanary實作原理
- Handler訊息機制
- 執行緒有哪些狀態
- Hybrid開發介紹
- Js功底怎么樣
- 未來職業規劃
嗶哩嗶哩
- MVC,MVP,MVVM的區別
- 使用MVVM有遇到什么問題嗎
- 協程原理
- 協程并發怎么處理的
- 熱修復原理
- 用熱修復的程序中有遇到什么問題嗎
- 啟動優化
- 包體積優化
- 繪制優化
- 全埋點是怎么做的
- Apk更新流程
- 多渠道打包
- 怎么辨別華為的包更新別的應用市場的包
- 演算法,插入排序原理
聲網
- 覺得做的最好的專案
- Jetpack用了哪些組件
- ViewModel如何資料共享
- ViewModel在Activity旋轉時如何保存資料的
- ViewModel怎么創建的,存在哪
- 使用ViewModel程序中有沒有遇到什么問題
- LiveData原理,怎么派發資料的
- postValue是怎么執行的
- 使用LiveData的程序中有沒有遇到什么問題
- 自定義View有哪些注意事項
- 簡單介紹一下協程
- 多個協程怎么保證資料安全的
- 演算法,輸入(H?O) ×2,輸出h4o2
掌門教育
- 筆試邏輯題
- Java有哪些資料結構
- Arraylist是執行緒安全的嗎
- String,StringBuilde,StringBuffer的區別
- Java中的鎖介紹一下,同步鎖舉例
- 四大參考區別,場景舉例
- Activity生命周期
- Fragment生命周期
- Fragment銷毀生命周期執行順序
- 自定義流程,舉例
- 自定義View重繪方式有哪些,執行流程
- 事件分發原理,舉例,延伸
- 滑動沖突怎么解決
- 怎么自己實作一個長按事件
- Service是哪個執行緒,怎么通信
- Handler訊息機制
- Handler發送訊息是一定立即執行的嗎
- Handler運行在哪個執行緒
- 子執行緒可以創建Handler嗎,寫法有哪些區別
- Kotlin定義變數的方式有哪些
- lateinit怎么確保使用時已經初始化
- let,run,apply介紹,區別
- inline原理
- 簡單介紹下協程
- 協程并發怎么處理
- 協程底層是怎么實作的
- 記憶體泄露原理,舉例場景
- 啟動優化
傳音控股
- 做的最有成就感的專案是哪個
- 印象最深刻的專案是哪個
- LiveData底層實作原理
- 啟動優化
- 包體積優化
- 自定義View流程
- View異步加載
- 有用過哪些設計模式
- 介紹一下單例,餓漢式,懶漢式,雙重鎖
- 代理模式和裝飾模式的區別
- 策略模式和狀態模式的區別
- 說說觀察者模式
- 有看過哪些三方庫的原始碼
- Glide四層快取機制
- AMS了解多少
得物
- 簡單介紹一下HashMap
- HashMap呼叫put的執行流程
- Activity啟動流程
- Binder機制
- Handler訊息機制
- Handler是怎么實作主執行緒和子執行緒的通信的
- Looper卡死為什么不會造成主執行緒的阻塞
- 了解過記憶體泄露嗎
- 是怎么發現記憶體泄露的,怎么處理的
- 線上的記憶體泄露是怎么監控的
- LeakCanary實作原理
- 軟參考和弱參考的區別
- 了解過ANR嗎
- 什么原因會造成ANR
- Activity的回應時間為什么是5s
- 事件分發機制
- 怎么解決滑動沖突的
- 錄音功能是怎么做的
- 編碼解碼相關
- 包體積優化做了哪些作業
哈啰出行
- 挑一個專案詳細說一下,以及相關技術堆疊
- 介紹一下協程機制
- 說一下Dispatchers,withContext,Scope他們的作用
- 說一下你理解的MVP,MVVM
- Flutter相關
- 性能優化做了哪些作業
- 編譯速度怎么提升的
- 記憶體泄露
- LeakCanary檢測原理
- 熱修復,Sophix原理,ClassLoader
- Apk打包流程
- 多執行緒并發,如何保證執行緒安全
- synchronized修飾方法和修飾代碼塊有什么區別
小紅書
- 技術調研你是怎么做的,會考慮哪些因素
- 說一下MVVM
- 用過Jetpack中的哪些組件
- LiveData是怎么做資料派發的
- ViewModel螢屏旋轉的時候怎么做到不丟失資料的
- 使用MVVM的程序中有遇到什么問題嗎
- 性能優化做了哪些作業
- 記憶體泄露有哪些場景
- LeakCanary檢測原理
- 如果讓你做一個自動化的工具去檢測圖片過大并自動壓縮你會怎么做
- 自定義View畫板是怎么做的
- 怎么檢測頁面的FPS
- Handler在onCreate中發送大量資料會導致主執行緒卡頓嗎
- LayoutInflater.inflate有幾個引數,分別是什么意思
其他廠整理補充
- Android中的Context了解多少
- Application里面可以彈窗嗎
- Activity、Window、View三者的關系
- OkHttp中有哪些設計模式
- Retrofit中有哪些設計模式
- Retrofit.create做了哪些作業
- 自定義一個圓角View
- 協程launch有哪些引數
- 說說by關鍵字
- 代理和委托的區別
- 雙親委托模式
- 有幾種獲取view寬高的方式
- view.post為什么可以獲取到
- getWidth和getMesureWidth的區別
- 手寫遍歷二叉樹
- 手寫雙重鎖單例
- 手寫插入排序
- 手寫雙陣列去重并排序
- 如何判斷鏈表有環
還有一些公司的沒有記,比如蔚來、中歐基金、阿里等,如果上面這些你能掌握大部分,自然也不在話下,
二面、三面技術
都是偏專案和綜合能力,因人而異就直接整理了,
- 你負責專案中的哪些模塊
- 介紹一下xx功能的流程
- 專案的架構是怎樣的
- Kotlin和Java混編有哪些需要注意的
- 專案中有遇到哪些難點
- 如果讓你重構,你會怎么做
- 學習的途徑有哪些
- 你覺得什么樣的代碼是好代碼
- 團隊是怎么分工的
- 怎么做需求管理
- 期望什么樣的團隊
- 怎么看待大前端方向
- 一個新技術如何在團隊里推廣
- 未來的規劃是什么,你打算怎么實作
- 認為自己的優點是什么,缺點是什么
- 為什么離職
HR面
整理,
- 為什么離職
- 介紹一下過往的作業經歷
- 在上家公司你有什么識訓嗎
- 目前看機會會考慮哪些因素
- 你在之前的團隊中是怎樣一個角色
- 有什么興趣愛好嗎
- 最有成就感的一件事
- 有沒有做過什么不可思議的事
- 你認為自己的優點是什么
- 最近有在看什么書嗎,有什么感想
- 你一般遇到問題都是怎么解決的
- 未來的職業規劃是什么
- 你對未來的公司有什么期望嗎
- 目前薪資
- 期望薪資
- 還有什么想要問我的嗎
技術要點
針對上面的問題,我總結了一下面試前需要掌握的一些知識點:
- Java基礎、Kotlin基礎、Android基礎(重要)
- App啟動流程
- Handler訊息機制
- View繪制流程
- 事件分發機制
- Jetpack常用組件原理
- Kotlin協程原理
- 性能優化
- 多執行緒、并發
- 組件化開發
- 熱修復原理
- 常用三方庫原理
- 常見的設計模式
- 資料結構和演算法
建議面前多練練手寫演算法,最好是拿筆在紙上寫,
關于演算法,不過是基于資料結構去操作資料的思想而已, 如果說限制了復雜度而想不出來的話,可以先寫再看如何優化,
市場行情
金九銀十招聘季,機會超級多啊,遇到好公司就入了吧,
可能有些同學看了上面的面試題覺得卷,正常的,
現在市場越來越成熟穩定,對面試者的要求也更高,加上技術更新又快,從Java到Kotlin、到Flutter、到Compose等等,確實有很多東西要學,很多同學都表示學不動了,我覺得,盲目跟風不如好好沉淀,
另外,再從面試官的角度聊聊,
雖然說大部分面試確實是各種底層實作、底層原理、手寫演算法什么的,不過作為面試官來說,其實有些也并不是要你都掌握的,問的深,一方面是校驗八股文,另一方面主要是技術摸底,看看你的技術邊際在哪,所以說,一場面試下來,能答上大部分即是通過了,當然,越多越加分,
只要技術夠硬,都是機會,
最后
在這里,我針對每個Android開發必備知識點都編入一套經典電子書庫(包含面試找作業的資料、JAVA知識、Android R FrameWork原始碼與UI、APP調優、架構、NDK模塊開發(音視頻系列),Flutter,,,)、匯總都打包放在這了,這套資源是伴隨我從小白一路成長為Android高級開發工程師點擊下方鏈接直達獲取:(for free)
Codechina


金九銀十希望每一位讀者都能找到一份理想的作業,不負努力,不服期待,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/298143.html
標籤:其他
