2019年3月初吮廉,離開滴滴準(zhǔn)備面試许师。
整理一下有印象的面試問題洋闽,準(zhǔn)備找工作的同學(xué)可以參考瓤球。
高德:專家工程師
1.對(duì)Activity啟動(dòng)流程的了解:AMS和ActivityThread涉及到的源碼溺忧?
2.ANR的實(shí)現(xiàn)原理是什么咏连,AMS中涉及ANR的代碼有哪些?
3.對(duì)MeasureSpec的理解鲁森,如何實(shí)現(xiàn)一個(gè)瀑布流的自定義ViewGroup祟滴?
4.內(nèi)存優(yōu)化做了哪些工作,LeakCannary實(shí)現(xiàn)細(xì)節(jié)歌溉。
5.layout_gravity和gravity的區(qū)別垄懂。
6.對(duì)Binder實(shí)現(xiàn)原理的理解。
7.對(duì)Flutter框架和實(shí)現(xiàn)原理的理解痛垛。
小紅書:
一面:
1.對(duì)Java多線程的理解草慧,Sychronize修飾類和對(duì)象的區(qū)別?
2.使用過哪些多進(jìn)程編程場景匙头?AIDL的使用和原理漫谷。
3.手寫一個(gè)單例算法的實(shí)現(xiàn)。
4.ART和Davilk虛擬機(jī)的區(qū)別是什么蹂析?
二面:
1.如何實(shí)現(xiàn)工程的組件化解耦舔示?
2.handler-looper源碼解讀朽寞,如何保證在msg.postDelay情況下保證消息次序。
3.leakCannary原理斩郎,如何判斷一個(gè)對(duì)象是否被回收脑融?如何觸發(fā)手動(dòng)gc?
三面:
1.開放問題:優(yōu)化一個(gè)列表頁面的打開速度和流暢性缩宜。
2.開放問題:設(shè)計(jì)一個(gè)圖片加載緩存框架肘迎。
3.職業(yè)規(guī)劃和職業(yè)訴求。
快手:業(yè)務(wù)孵化部
一面~三面:
1.過往項(xiàng)目介紹和提問锻煌。
2.ListView和RecyclerView區(qū)別是什么妓布,兩者如何技術(shù)選型。
3.算法:實(shí)現(xiàn)一個(gè)o(n)復(fù)雜度的堆和最大數(shù)宋梧。
4.ART和Davlik垃圾回收區(qū)別匣沼;
5.開放性問題:如何設(shè)計(jì)垃圾回收算法?
螞蟻金服:專家工程師
一面(電面):
1.Android/Java中的Classloader有哪些捂龄,區(qū)別是什么释涛?
2.Android中的注解有哪幾種,分別用來做什么倦沧?
3.了解或使用過哪些編譯插樁方案唇撬,原理和優(yōu)缺點(diǎn)是什么?
4.如何實(shí)現(xiàn)懶漢單例模式展融?口述代碼實(shí)現(xiàn)窖认。
5.插件化和熱修復(fù)的主流方案有哪些?
6.分別如何對(duì)java代碼和資源實(shí)現(xiàn)熱修復(fù)告希?
二面:
1.項(xiàng)目實(shí)現(xiàn)細(xì)節(jié)扑浸。
2.Flutter框架和實(shí)現(xiàn)原理。
3.對(duì)ReactNative實(shí)現(xiàn)原理的了解燕偶。
4.筆試題:實(shí)現(xiàn)一個(gè)數(shù)組的窗口掃描算法喝噪。
三面:
1.最有成就的項(xiàng)目是什么?
2.該項(xiàng)目如何向外輸出杭跪?
四面:
1.設(shè)計(jì)一個(gè)網(wǎng)絡(luò)優(yōu)化方案仙逻,針對(duì)移動(dòng)端弱網(wǎng)環(huán)境。
2.設(shè)計(jì)一個(gè)性能優(yōu)化方案涧尿。
3.對(duì)leakcannary原理的了解,c層實(shí)現(xiàn)檬贰。
5.餓了么:基礎(chǔ)架構(gòu)組
一面:
內(nèi)存優(yōu)化使用過哪些方案姑廉,取得過哪些效果,衡量指標(biāo)如何確定翁涤?
app性能檢測手段有哪些桥言?
如何實(shí)現(xiàn)對(duì)一個(gè)方法執(zhí)行耗時(shí)無痕埋點(diǎn)萌踱?
git實(shí)現(xiàn)原理是什么,如何搭建git server号阿?
git merge和git rebase的區(qū)別并鸵?git 哈希算法的原理。
RPC和RESTful 的區(qū)別扔涧,項(xiàng)目中用的是哪種园担?
設(shè)計(jì)一個(gè)針對(duì)移動(dòng)端弱網(wǎng)優(yōu)化項(xiàng)目。
二面~三面:
項(xiàng)目細(xì)節(jié)枯夜,有什么設(shè)計(jì)缺陷和改進(jìn)方案弯汰。
Android工程的編譯流程。
字節(jié)跳動(dòng):基礎(chǔ)架構(gòu)組
一面:
做過哪些性能優(yōu)化項(xiàng)目湖雹,說說實(shí)現(xiàn)細(xì)節(jié)咏闪。
TraceView的實(shí)現(xiàn)原理,分析數(shù)據(jù)誤差來源摔吏。
是否使用過SysTrace,原理的了解征讲。
TextView setText耗時(shí)的原因溪胶,對(duì)TextView繪制層源碼的理解。
對(duì)Flutter的原理了解稳诚,如何實(shí)現(xiàn)多Native頁面接入哗脖。
二面:
如何實(shí)現(xiàn)app的卡頓監(jiān)控,線下和線上扳还;比較這幾種方法的優(yōu)劣才避。
了解哪些編譯插樁技術(shù),聊聊使用細(xì)節(jié)氨距。
HashMap的實(shí)現(xiàn)原理桑逝,如何解決哈希沖突?
算法題:識(shí)別一個(gè)字符串是否是ipv4地址俏让。
三面:
你最優(yōu)秀的工程設(shè)計(jì)項(xiàng)目楞遏,是怎么設(shè)計(jì)和實(shí)現(xiàn)的;擴(kuò)展首昔,如何做成一個(gè)平臺(tái)級(jí)產(chǎn)品寡喝?
做過哪些性能優(yōu)化項(xiàng)目?說下實(shí)現(xiàn)細(xì)節(jié)勒奇。
對(duì)Glide源碼的了解预鬓,如何管理bitmap cache的,cache共有幾級(jí)赊颠?
對(duì)inBitmap的理解格二。
算法:o(n)復(fù)雜度實(shí)現(xiàn)偶數(shù)遞增奇數(shù)遞減單向鏈接排序劈彪。
算法:單向鏈表逆序。
四面:
過往經(jīng)歷項(xiàng)目顶猜。
算法:實(shí)現(xiàn)一個(gè)數(shù)組插入沧奴。(處理異常判別,不使用Collections相關(guān)接口)长窄。
職業(yè)發(fā)展規(guī)劃滔吠。
Bigo
一面:
線程和進(jìn)程的區(qū)別,什么時(shí)候使用多線程和多進(jìn)程抄淑?
Android中有哪些IPC方式屠凶,Binder的優(yōu)勢(shì)和實(shí)現(xiàn)原理什么?
描述AM-AMS binder通信流程肆资。
對(duì)文件描述符怎么理解矗愧?
Android中有哪些文件存儲(chǔ)方式。
技術(shù)價(jià)值觀郑原。
二面:
做過哪些流量優(yōu)化方案唉韭?
運(yùn)營項(xiàng)目設(shè)計(jì)思路,有什么缺陷和改造建議犯犁。
這個(gè)項(xiàng)目的設(shè)計(jì)優(yōu)勢(shì)属愤,對(duì)高內(nèi)聚低耦合的理解?
三面:
業(yè)務(wù)提問酸役。
職業(yè)預(yù)期住诸。
其他合集:美圖,作業(yè)幫涣澡,新東方贱呐,貝殼,脈脈
1.Fragment和Activity技術(shù)選型入桂,兩者如何通信奄薇。(新東方)
12.算法題:找到無序數(shù)組的最大連續(xù)求和。(新東方)
2.gradle中flavorDimensions的含義抗愁,在什么場景下使用過馁蒂?
3.是否使用過CordinateLayout,嵌套滾動(dòng)是如何實(shí)現(xiàn)的蜘腌?
4.Android中有哪些跨線程通信方式沫屡,區(qū)別是什么?
5.AsyncTask有哪些使用局限性逢捺,是如何使用自定義線程池的谁鳍?
6.Serivce是如何做到高優(yōu)先級(jí)保活劫瞳?
7.Android中使用過哪些持久化存儲(chǔ)倘潜,各自的使用場景是什么?
8.如何不依賴框架實(shí)現(xiàn)一個(gè)數(shù)據(jù)庫column的數(shù)據(jù)類型改造?
8.算法題:找到多個(gè)員工的共同繁忙時(shí)段志于。
9.對(duì)線程池的理解涮因。(脈脈)
10.ReactNative實(shí)現(xiàn)原理,RN列表優(yōu)化方案伺绽。(脈脈)
11.如何實(shí)現(xiàn)進(jìn)程安全寫文件养泡?
12.OKhttp針對(duì)網(wǎng)絡(luò)層有哪些優(yōu)化?
13.對(duì)Android編譯發(fā)布流程的了解奈应。
14.實(shí)現(xiàn)對(duì)現(xiàn)有工程的flutter遷移澜掩。