大牛孵化器--頭條Android崗123面面經(jīng)分享

大牛孵化器:提供最權(quán)威的互聯(lián)網(wǎng)面試指導(dǎo),讓你關(guān)鍵時(shí)刻彎道超車~

昨天頭條Android崗三輪遠(yuǎn)程面通過,HR打電話通知九月中下旬會(huì)再聯(lián)系,應(yīng)該是進(jìn)入備胎池了吧。

個(gè)人情況:西北農(nóng)村211,科班學(xué)渣,無實(shí)習(xí)經(jīng)歷,無牛逼項(xiàng)目。秋招首面,希望能開個(gè)好頭吧。

一面

算法題 100W 取top100,準(zhǔn)備寫快排的劃分思路,被懟了,不讓寫,然后我說那用堆吧,然后面試官讓用堆,然后堆排序,忘了,寫不出來GG

Handler,IntentService,HandlerThread相關(guān)

HashMap原理

Android內(nèi)存泄漏是什么?怎么檢測?怎么避免?

算法題,一組數(shù)中有一個(gè)數(shù)出現(xiàn)了一次,其他出現(xiàn)兩次,找出這個(gè)數(shù),用異或,寫完面試官改成兩個(gè)數(shù),我說了一兩句,面試官估計(jì)也懂,直接不讓我說了,下一個(gè)

ANR 相關(guān)

項(xiàng)目。。。網(wǎng)絡(luò)請求相關(guān)的一個(gè)簡單的框架。

好像不止這點(diǎn),有點(diǎn)忘了。。。

二面

Throwable、Exception、Error三者的關(guān)系,Exception和Error有什么區(qū)別,Error可以被捕獲嘛?(最后一個(gè)問題沒答好,我猜的是不可以,沒答出來為啥)

然后問我一個(gè)圖片瀏覽的項(xiàng)目。

涉及到了圖片相關(guān)的問題,如何防止OOM,Bitmap的壓縮,inSampleSize,inBitmap相關(guān),bitmap的復(fù)用,一個(gè)Bitmap的內(nèi)存占用怎么計(jì)算,LruCache,DisLruCache,Glide的獨(dú)特的緩存策略,有什么好處和適用場景。Glide的BitmapPool的內(nèi)存復(fù)用。

自己項(xiàng)目中圖片列表這一塊做了那些優(yōu)化(提到了RecyclerView滾動(dòng)時(shí)停止加載,停止時(shí)再進(jìn)行加載。

然后就是ViewPager+Fragment+RecyclerView中多個(gè)RecyclerView復(fù)用同一個(gè)RecycledViewPool,減少內(nèi)存占用,這里大概也提了一下RecyclerView的復(fù)用機(jī)制)

然后問我一個(gè)對OkHttp的封裝的項(xiàng)目,然后問我好像問網(wǎng)絡(luò)挺熟悉啊?

然后場面一度僵硬,因?yàn)榫W(wǎng)絡(luò)學(xué)得并不好,然后就很尷尬得說了一下自己只是在應(yīng)用層對OkHttp做了一個(gè)封裝,主要是看了一下Retrofit的源碼,學(xué)習(xí)到了一些優(yōu)秀的設(shè)計(jì),然后自己試著做一下。

然后面試官大概問了一下Http相關(guān)的東西,然后是狀態(tài)碼的含義,4xx和5xx有啥區(qū)別。非200的狀態(tài)碼怎么處理,怎么反饋給用戶?

然后講了一下某個(gè)應(yīng)用層項(xiàng)目里對網(wǎng)絡(luò)請求結(jié)果這一塊的封裝。感覺答得不是很好。

多線程同步相關(guān)的問題。

提問很寬泛,問我了解哪些,說一下,然后我說了wait notify,不滿意,然后我又說了sychronized,還是不滿意繼續(xù)問,然后我又提到了Lock和RetrantLock,和sychronized的大概區(qū)別說了一下。

面試官還是不滿意,繼續(xù)問還有呢?我說我想不起來了,面試官一臉失望地問你知道volatile么?好吧,幸好我知道這玩意兒,然而說了一下volatile的意義,保證內(nèi)存可見性和禁止指令沖排序,舉了DCL的單例說了一下。

volatile能保證原子性么?不能。

ClassLoader雙親委托,類加載流程。為啥要使用雙親委托這種模式,有什么好處?(最后一個(gè)問題很懵逼,太菜,瞎猜糊弄過去了)

一個(gè)算法題,有N個(gè)臺(tái)階,123456-N,一個(gè)青蛙在0處,每次可以跳3或4或5步,給定一個(gè)整數(shù)N,判斷跳到N最少要多少步。

我一開始想得很簡單,覺得對5取模,然后找到之前某個(gè)點(diǎn)的最少次數(shù),后面一直每次五步就可以了。

然后面試官讓證明,我證不出來,然后想了一下這個(gè)思路有點(diǎn)問題,然后提到了動(dòng)態(tài)規(guī)劃,然后寫代碼,動(dòng)態(tài)規(guī)劃。

View的繪制流程,onMeasure,onLayout,onDraw,三種測量模式的區(qū)別的場景。這里問得比較淺。

大概就是這樣,可能還有些忘了。

三面

一上來面試官讓自我介紹,然后問我覺得自己哪塊學(xué)得比較好比較有自信的可以給他介紹一下。

我想了一下,覺得哪一塊都沒有自信,好像都會(huì)一點(diǎn),好像啥都沒有深入,心疼自己。

然后憋了半天說,我好像沒有哪個(gè)地方很突出的,我學(xué)得比較寬泛。

面試官似乎不太滿意,很無奈得說,那我問吧。

View的繪制流程,onMeasure,onLayout,onDraw。

然后給了一個(gè)簡單的自定義View要求。一個(gè)正方形的View,內(nèi)部畫一個(gè)圓,直徑可以指定,讓說自定義的流程。問得很細(xì),包括自定義屬性在哪里定義的,在哪里獲取的,怎么保證View的正方形,怎么保證圓不會(huì)超出View,draw的具體流程。

然后問除了onDraw還有哪里可以自定義的,我一開始沒反應(yīng)過來,面試官又問了一遍,好好想想,還有哪里可以自定義的。

然后我想明白了,可以自定義onLayout,實(shí)現(xiàn)一些符合特殊布局規(guī)則的容器。

然后我拿FlowLayout作為例子說了一下自定義onLayout。

View的事件分發(fā)機(jī)制,自己隨便提了滑動(dòng)沖突的解決方案。

項(xiàng)目,基于OkHttp那個(gè)封裝,怎么構(gòu)建請求的,怎么解析請求的,怎么實(shí)現(xiàn)線程切換。

這里提到了一下Handler,然后追問Handler,于是把Handler那一套說了一遍,沒有追問到native層,我也沒敢提。

然后回到項(xiàng)目,我提到了解析回調(diào)的類型,不傳入xx.class,不夠優(yōu)雅。

然后面試官問我那怎么實(shí)現(xiàn)的,然而我提到了用泛型,運(yùn)行時(shí)動(dòng)態(tài)通過傳入的泛型Callback來解析T的類型,這里大概扯了一下Java的偽泛型,這里提到了用getGenericInterfaces得到Type,然后用這個(gè)Type去解析。

然后面試官問到了如果這里的T是List怎么辦,能解析出來嗎?我想了一下,表示應(yīng)該不能,然后表示這是自己一個(gè)練手的東西,考慮得不夠全面。

面試官表示沒啥,可以理解,但是商業(yè)化項(xiàng)目里肯定要考慮這些。

寫一個(gè)線程安全的懶漢式單例,不能用靜態(tài)內(nèi)部類實(shí)現(xiàn),那這里顯然問得是DCL+volatile,搞定

IPC相關(guān)。大概提了幾種常見的IPC方式,最后還是得回到Binder,Java層的應(yīng)用說得比較細(xì),底層原理大概提了一下,沒往深問。

算法題,判斷一個(gè)樹是不是AVL樹,這個(gè)問題應(yīng)該在劍指offer上看到過,這個(gè)題寫得很爛。

寫得有問題,然后面試官自己寫了一個(gè),讓我看看有啥問題,看到了一句比較關(guān)鍵的話,但是沒有怎么理解。

溝通了一下思路,面試官表示他那個(gè)也有問題,不過比我的更接近正解,還說這個(gè)問題不難,回去好好想想。

最后有啥要問的,問了一下面試評價(jià),有哪些不足,給點(diǎn)建議。面試官說基礎(chǔ)理論還行,動(dòng)手能力還需要加強(qiáng)。多寫代碼

大牛提醒:校招跟社招的的一個(gè)區(qū)別就是,校招一定會(huì)問算法問題,社招一般不會(huì)問,所以請童鞋們在面試前刷一遍算法題,切記不要抱僥幸心理。

歡迎關(guān)注微信公眾號:大牛孵化器,更多免費(fèi)知識分享教程等你來領(lǐng)取。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,881評論 25 709
  • 【青國青城綠絲帶圓夢行動(dòng) 】是由何娜娜女士發(fā)起的,以喚醒全民環(huán)保意識,倡導(dǎo)健康生活方式。弘揚(yáng)中華傳統(tǒng)美德,復(fù)興中國...
    何娜娜GL閱讀 551評論 0 0
  • 當(dāng)思念一個(gè)人的時(shí)候,我們是怎樣的呢?我一直不是很懂。 明明在看書,上面的每一個(gè)字卻只是浮于表面,什么也沒有記住。 ...
    荒亂于時(shí)閱讀 141評論 0 0
  • 2006年,我大學(xué)畢業(yè),考進(jìn)了家鄉(xiāng)的一家大型國企。 起初一切還好,直到我上班第三個(gè)月的某天,發(fā)生了一件事。 當(dāng)時(shí)單...
    麥肖肖閱讀 1,018評論 4 0
  • 昨晚老陳同志(我爹)打電話給我,讓我?guī)兔b控指揮一下他手機(jī)往電腦上傳文件,這算是我倆比較和平的一次交流,打完一...
    云夢澤曼曼閱讀 515評論 1 1

友情鏈接更多精彩內(nèi)容