前言
我20年畢業(yè)于一所雙非本科院校計算機專業(yè)涎劈,之前在小米實習(xí)和工作了一年广凸,一直都是Android開發(fā)。
年中的時候因為個人原因打算離開小米到外面看看蛛枚,投了很多簡歷谅海,最終面試了字節(jié)跳動、騰訊蹦浦、美團扭吁、快手,憂喜參半盲镶,本文對這這次面試做一個總結(jié)侥袜。
字節(jié)跳動
字節(jié)是一個同學(xué)內(nèi)推的,也是我很想去的一個公司溉贿,整個面試流程下來體驗很nice枫吧,效率很高,面試官人也很親切宇色。
- 手寫代碼:計算View樹上所有view的數(shù)量九杂,參數(shù)ViewGroup
- 主線程Looper一直循環(huán)查消息為何沒卡主線程?
- RecyclerView相對ListView區(qū)別宣蠕?
- Bitmap resize相關(guān)例隆,設(shè)置option,decode
- 用MultiDex解決何事抢蚀?其根本原因在于镀层?Dex如何優(yōu)化?主Dex放哪些東西皿曲?主Dex和其他Dex調(diào)用鹿响、關(guān)聯(lián)?Odex優(yōu)化點在于什么谷饿?
- Dalvik和Art虛擬機區(qū)別惶我?
- 多渠道打包如何實現(xiàn)(Flavor、Dimension應(yīng)用)博投?從母包生出渠道包實現(xiàn)方法绸贡?渠道標識替換原理?
- Android打包哪些類型文件不能混淆?
- Retrofit主要實現(xiàn)機制听怕?Retrofit的作用捧挺、原理
- 動態(tài)代理靜態(tài)代理區(qū)別?
- 模塊化怎么做尿瞭?怎么設(shè)計闽烙?接口發(fā)現(xiàn)暴漏怎么做?基于什么基本思想声搁?
- MVC黑竞、MVP、MVVM應(yīng)用和彼此本質(zhì)區(qū)別疏旨?
- Glide緩存特點
- 擅長哪個方向很魂?
- 算法題:兩個線程分別持續(xù)打印奇數(shù)和偶數(shù),實現(xiàn)兩個線程的交替打娱芾浴(從小到大)
- 模塊化遏匆、工程化架構(gòu)思想
騰訊
騰訊是一個哥們幫忙內(nèi)推的,我也挺想去騰訊的谁榜,但沒有面過幅聘,能記住的內(nèi)容就這么多了。
- GC機制窃植;
- RxJava有沒有了解喊暖;
- 內(nèi)存泄漏怎么排查;
- app的頁面突然卡了一下撕瞧,怎么排查陵叽?
- ANR怎么排查?定義是什么丛版?
- 使用過哪些開源庫巩掺;
- 對OKHttp有哪些了解?這個框架設(shè)計怎么樣页畦?
- Databinding有哪些了解胖替?
- EventBus了解嗎?
- 安卓的注解有什么了解豫缨?
- RelativeLayout和LinearLayout怎么選独令?為什么?
- 自定義Layout主要有那幾個流程好芭?
- 滑動過程卡頓燃箭,刷新率太低,怎么排查舍败?
美團
美團是這幾次面試中最順利的一次了招狸。
- tcp中的3次握手敬拓。get和post的區(qū)別
- TCP和UDP的區(qū)別,五層協(xié)議
- 線程和進程的區(qū)別裙戏,線程狀態(tài)乘凸,同步鎖,Java里面應(yīng)用到同步鎖的情景累榜,Android哪里用到了同步鎖
- 項目中做過哪些優(yōu)化营勤?簡單說下。
- List中的ArrayList和LinkedList的區(qū)別壹罚,hashmap和hashtable的區(qū)別葛作,hashmap的底層實現(xiàn),如何解決hash沖突
- 算法渔嚷,一個三叉樹,求深度稠曼,求最大節(jié)點數(shù)
- IPC有哪些(Messenger形病,AIDL,socket),如果讓你分類霞幅,如何將它們分類漠吻,為什么?
- Broadcast可以跨進程么司恳?如果可以途乃,是通過什么實現(xiàn)的
- 了解Binder么?
- 了解Service么扔傅?說下bindService和startService的區(qū)別耍共?
- 項目中的bug,你是如何解決的猎塞?
快手
這次面試流程比較長试读,快手感覺很注重算法,我后來也被HR答復(fù)算法需要加強荠耽,想去快手的話多刷點題吧钩骇。
- Android/ 布局優(yōu)化
- Activity啟動模式
- RecyclerView和ListView區(qū)別
- Handler機制,loop方法為何不會造成ANR
- View繪制流程
- SingleTop和standard啟動模式下铝量,生命周期回調(diào)有何不同
- onStart和onResume區(qū)別
- Java/ 面向?qū)ο笕筇匦?/li>
- Array和Linked區(qū)別
- HashMap底層
- 進程間通信方式
- equals和==區(qū)別
- 線程間加鎖的方式
- 設(shè)計模式
- synchronized的不同使用
- 異常
- 線程池
- 創(chuàng)建線程的方式
- OS/ 死鎖
- 網(wǎng)絡(luò)/ tcp和udp的區(qū)別
- 合并k個有序鏈表
最后
這就是本次面試記錄下來的一些內(nèi)容倘屹,從投簡歷到面試一系列環(huán)節(jié)中還是可以感受到就業(yè)比較難,我自己水平也有很大的提升空間慢叨,總之不要隨便裸辭纽匙,時刻做好技術(shù)提升的準備。
相關(guān)視頻推薦
Android(安卓)開發(fā)零基礎(chǔ)從入門到精通
Android大廠精選高頻面試題逐題詳解
FrameWork必問:WMS/AMS/Handler/Binder/事件分發(fā)機制/屏幕適配/插件化
Android開發(fā)中高級進階實戰(zhàn):實現(xiàn)QQ語言變聲/網(wǎng)易云音樂無閃爍動態(tài)換膚拍谐,NDK身份證識別技術(shù)