[轉(zhuǎn)]一年Android工作經(jīng)驗(yàn),阿里 百度 網(wǎng)易 美團(tuán) 小米 快手面經(jīng)

轉(zhuǎn)載請(qǐng)注明出處:http://blog.csdn.net/a296777513/article/details/73610719

前言

人生困難重重,在漫長(zhǎng)而艱辛的前行路上,堅(jiān)持不懈、腳踏實(shí)地的“低頭拉車(chē)”固然重要。但認(rèn)清形勢(shì)、找準(zhǔn)目標(biāo)的“抬頭看路”也很關(guān)鍵,甚至決定著你能否達(dá)到成功彼岸。只尋求遠(yuǎn)方的夢(mèng)想,而不付出當(dāng)下的努力,那是迷夢(mèng);只知道埋頭苦干,而不認(rèn)清方向,那是徒勞。

先簡(jiǎn)單說(shuō)說(shuō)我最近的面試經(jīng)歷吧。面試的公司很多,大部分最后都能得到令人滿(mǎn)意的結(jié)果,我將這些體會(huì)記錄下來(lái),面了這么多公司,如果不留下什么,那豈不是太浪費(fèi)了。對(duì)于我來(lái)說(shuō),這也是一次自我檢查,在這次面試中總結(jié)經(jīng)驗(yàn),認(rèn)清自己,同時(shí)希望這些對(duì)即將換工作或者打算看看其他機(jī)會(huì)的你有一些幫助。
以下的部分有具體的面試經(jīng)歷,也有自己的一些總結(jié)面試必備技能和自己的一些感想。

為何離開(kāi)華為

來(lái)華為的主要原因是:

增長(zhǎng)自己的見(jiàn)識(shí),很好的發(fā)展自己。很好的發(fā)展自己,就需要一個(gè)平臺(tái),通常這個(gè)平臺(tái)是大公司才能提供,大公司會(huì)有一套完整的機(jī)制來(lái)培養(yǎng)你,讓你有更多的選擇,可以選擇自己喜歡做的事情。所以我建議剛畢業(yè)的同學(xué),最好還是選擇大公司,哪怕以后要跳槽,大公司也是非常好的跳板。在華為的這一年,最大的收獲并不是技術(shù)上的成長(zhǎng),而是自己的見(jiàn)識(shí)和思考問(wèn)題的能力。雖然有很多人不滿(mǎn)華為,公司大了,肯定不可避免會(huì)出現(xiàn)很多問(wèn)題,但是總體來(lái)說(shuō)華為還是一個(gè)非常了不起的企業(yè)。
離開(kāi)華為的主要原因是:我的職業(yè)規(guī)劃與華為給我的規(guī)劃不相符,還有就是流程化的東西太繁瑣,自己有一些不適應(yīng),所以選擇離開(kāi)了華為。非常感謝我高總(直接領(lǐng)導(dǎo))和邦邦(師傅),在華為的這一年中給予我非常多的幫助,在我跟領(lǐng)導(dǎo)溝通離開(kāi)的想法時(shí),領(lǐng)導(dǎo)開(kāi)誠(chéng)布公的跟我聊了很多,最終我還是下定決定要離開(kāi)華為,領(lǐng)導(dǎo)建議我先去面試一些公司,等找到合適的再走,裸辭的話(huà)社保和心態(tài)上都會(huì)有一些問(wèn)題,這樣的領(lǐng)導(dǎo)真是沒(méi)話(huà)說(shuō)了,在華為很多領(lǐng)導(dǎo)都是不放人的,很多都把員工的下一家拖黃了才放人。在這一年獲得的成績(jī):

  1. 北京研究所第一屆Hackathon 二等獎(jiǎng)2. 轉(zhuǎn)正績(jī)效是A3. 年終績(jī)效 B+,獲得明日之星

準(zhǔn)備

其實(shí)我很早就開(kāi)始準(zhǔn)備了,準(zhǔn)確來(lái)說(shuō)也不算準(zhǔn)備,只是一直在總結(jié)Android相關(guān)方面的知識(shí),因?yàn)樵谌A為雖然工作有時(shí)候比較多,但是還是有大把時(shí)間可以自己學(xué)習(xí)一些感興趣的方向。從過(guò)完年回來(lái),我就有計(jì)劃的復(fù)習(xí)和總結(jié)了一些知識(shí)。
看過(guò)的書(shū)籍,這里并不是泛泛的讀一遍,而是詳細(xì)理解了大多數(shù)內(nèi)容,通俗一點(diǎn)就是可以用自己的話(huà)將相應(yīng)的知識(shí)解讀出來(lái)?!禔ndroid開(kāi)發(fā)藝術(shù)探索》(這本書(shū)真心不錯(cuò),我反復(fù)讀了4、5遍)、《Android群英傳》(比較接近開(kāi)發(fā)使用,因?yàn)樽鲞^(guò)一些應(yīng)用開(kāi)發(fā),讀起來(lái)還是比較簡(jiǎn)單的,讀了2遍)、《深入理解Java虛擬機(jī)》(也是一部神作,可以讓你清晰的理解JVM,讀了2遍,理解的不是很透徹)、《劍指offer》(感覺(jué)面試中碰到的算法,80%都能找到相應(yīng)的題目,保證所有的題都可以手寫(xiě)出來(lái)就行)。4個(gè)月精讀了以上書(shū)籍,還有其他的都是簡(jiǎn)單了解,這里就不列舉了,讀完這些書(shū),應(yīng)該可以讓你上一個(gè)層次吧(媽媽再也不用擔(dān)心我面試?yán)病?br> 刷題,主要是LeetCode(大概刷了300道題左右,每天3-6道,堅(jiān)持下來(lái),需要多復(fù)習(xí),因?yàn)楹芏囝}過(guò)一段時(shí)間會(huì)忘記),還有看過(guò)一些牛課網(wǎng)。
看別人的面試經(jīng)驗(yàn),主要在網(wǎng)上,這里我列舉兩個(gè)比較好的。 Android客戶(hù)端面試題集錦
Android阿里面試題錦集

投遞簡(jiǎn)歷

一份好的簡(jiǎn)歷是非常有必要的,需要突出你的重點(diǎn)和閃光點(diǎn),具體怎么寫(xiě)簡(jiǎn)歷可以參考
CodeKK說(shuō)簡(jiǎn)歷
有了一份好簡(jiǎn)歷,接下來(lái)就是投遞簡(jiǎn)歷,一般是:拉鉤+BOSS直聘+內(nèi)推,從我這次面試機(jī)會(huì)來(lái)看,三者比例是2:2:1,也可能我工作經(jīng)驗(yàn)還不到一年,內(nèi)推滴滴、阿里和騰訊直接就把我的簡(jiǎn)歷刷掉了,但是內(nèi)推也是具體到某個(gè)部門(mén),如果被刷掉也不要灰心,現(xiàn)在大公司基本上各個(gè)部門(mén)都有自己的hr,可以在拉頭和BOSS上多投遞一些,萬(wàn)一其他部門(mén)看中你呢?

面試經(jīng)過(guò)

這里我僅僅記錄一些問(wèn)過(guò)的題目(能記住的),答案我就不寫(xiě)出來(lái),基本上都可以在網(wǎng)上找到相應(yīng)的答案。

作業(yè)盒子

時(shí)間有點(diǎn)久,很多問(wèn)題記得不太清,大概有以下內(nèi)容。

一面

  1. Android一些優(yōu)化方案 2. 什么是過(guò)渡繪制,如何防止過(guò)渡繪制 2. 事件分發(fā)機(jī)制 3. ListView的優(yōu)化 4. Binder機(jī)制 5. 在多進(jìn)程中,Application會(huì)啟動(dòng)幾次 6. 單例模式,雙鎖原理,volatile原理,靜態(tài)內(nèi)部類(lèi)實(shí)現(xiàn)單例的原理。

二面

二面面試官是leader?反正應(yīng)該不是做android的,Android的相關(guān)知識(shí)問(wèn)的也不多,大多是項(xiàng)目上的東西。

  1. Java多線(xiàn)程,synchronized 2. 聊項(xiàng)目,都具體做了什么。 3. Binder機(jī)制

三面

應(yīng)該是leader吧,主要了解一些個(gè)人的情況,以及一些項(xiàng)目,最后問(wèn)了期望的薪資,然后當(dāng)場(chǎng)就給了offer。
畢竟1年多沒(méi)有面試了,第一場(chǎng)面試還是給我了很大的自信,也知道現(xiàn)在自己大概能要多少工資是合適的,所以同學(xué)們準(zhǔn)備跳槽的時(shí)候,最好先面幾家小公司,盒子還是一個(gè)很不錯(cuò)的公司,整體的辦公環(huán)境挺好的,現(xiàn)在也處于盈利狀態(tài),在教育類(lèi)的app中也排的上名次。

快手

快手就在五道口地鐵站出口不遠(yuǎn)地方,能看到很顯眼的LOGO,看上去很霸氣的樣子,但是當(dāng)我進(jìn)入到快手前臺(tái)的時(shí)候,連一個(gè)標(biāo)示符都沒(méi)有, 一度以為自己走進(jìn)了假快手,好吧,我是來(lái)面試,這些都不重要,接下來(lái)接待的人員把我領(lǐng)進(jìn)了一個(gè)小屋里,等待面試的開(kāi)始。

一面

面試官是一個(gè)很fashion的人,是從小米核心部門(mén)過(guò)來(lái)的,是Android小組的領(lǐng)導(dǎo)。

  1. 問(wèn)了關(guān)于數(shù)據(jù)庫(kù)的一些問(wèn)題,SQLite的相關(guān)操作,沒(méi)辦法,我在華為唯一一個(gè)做的和java相關(guān)的項(xiàng)目,但是不太擅長(zhǎng)數(shù)據(jù)庫(kù)。 2. 網(wǎng)絡(luò)相關(guān)的問(wèn)題,網(wǎng)絡(luò)的五層模型,又問(wèn)了TCP和UDP,還有Android相關(guān)的長(zhǎng)連接,這里問(wèn)的比較深。 3. 開(kāi)始Android先關(guān)的知識(shí),Handler機(jī)制,Acticity的生命周期以及四種啟動(dòng)模式,各自特點(diǎn),Service的兩種啟動(dòng)模式生命周期,如果同時(shí)使用兩種啟動(dòng)模式是否可以,順勢(shì)講到Binder,什么時(shí)候可以得到控件的大小,最后寫(xiě)了一道鏈表反轉(zhuǎn)的算法題

第一面這就算過(guò)關(guān)了等待二面。

二面

  1. 問(wèn)了項(xiàng)目相關(guān)的問(wèn)題,這部分根據(jù)自己的項(xiàng)目經(jīng)驗(yàn),由于大家的經(jīng)驗(yàn)都不同,這里我就不詳細(xì)說(shuō)了。 2. 設(shè)定一個(gè)場(chǎng)景,怎么去實(shí)現(xiàn)相應(yīng)的功能,因?yàn)榭焓诌@個(gè)部門(mén)想做社交,因此這里是問(wèn)我是如何實(shí)現(xiàn)微信的聯(lián)系人頁(yè)面(包括與服務(wù)端有什么樣的交互) 3. 最后也是一個(gè)算法,寫(xiě)出所有數(shù)組的子序列

二面面試官是這個(gè)組的leader,跟我講了現(xiàn)在這個(gè)組的發(fā)展情況和快手現(xiàn)在的情況,由于快手成長(zhǎng)很快,所以不能僅僅依靠一個(gè)APP,還需要在其他方面進(jìn)行一些嘗試,而這個(gè)組的任務(wù)就是在一些方面做一些嘗試,大概就是這個(gè)樣子。 二面也順利通過(guò),接下來(lái)就是HR面了,這時(shí)候正好是12點(diǎn),他們要去吃飯,不過(guò)快手是提供午餐和晚餐的,第一個(gè)面試官帶給我一份飯,還不錯(cuò),后來(lái)HR跟我說(shuō),現(xiàn)在只是過(guò)渡時(shí)期,后面午餐和晚餐會(huì)改成自助餐的形式。

三面

HR上來(lái)很親切,問(wèn)了我一些面試的情況,難不難之類(lèi)的,然后又聊了聊我大學(xué)和研究生情況,我只想說(shuō)我“too simple , too naive “,大概了解我后,只跟我聊我的不足,以此來(lái)壓低我期望的薪水。說(shuō)了一下薪資期望,加了微信,讓我回去等待,說(shuō)發(fā)offer大概是2周時(shí)間,因?yàn)樾枰吒鞣N審批流程,讓我不要著急。
快手是一個(gè)很年輕的公司,技術(shù)還是需要一定的積累,希望不要像小咖秀一樣曇花一現(xiàn)。

美團(tuán)外賣(mài)

一面

簡(jiǎn)歷上寫(xiě)的項(xiàng)目問(wèn)了一遍,然后開(kāi)始問(wèn)知識(shí)點(diǎn)。

  1. volley的源代碼,在圖片緩存部分討論了挺長(zhǎng)時(shí)間,http中緩存機(jī)制,Last-Modify的作用等。 2. fragment的生命周期 3. service一些知識(shí) 4. 事件分發(fā)機(jī)制 5. Binder實(shí)現(xiàn)機(jī)制,Stub類(lèi)中asInterface函數(shù)作用,BnBinder和BpBinder區(qū)別。 6. gradle中buildToolsVersion和TargetSdkVersion的區(qū)別是什么 7. 手機(jī)適配一些方案 8. hashmap的實(shí)現(xiàn)原理 9. 靜態(tài)方法是否能被重寫(xiě)

這些大概聊了1個(gè)半小時(shí),開(kāi)始的時(shí)候還有些緊張,慢慢聊開(kāi)了,就好多了,面試官的語(yǔ)速有點(diǎn)快,老是需要面試官重復(fù)一遍,我也不經(jīng)意間語(yǔ)速也變快了,不過(guò)能看出來(lái)面試官還是很厲害的。

二面

  1. 3次握手和4次揮手的原因,以及為什么需要這樣做。 2. 數(shù)據(jù)結(jié)構(gòu),搜索二叉樹(shù)的一些特性,平衡二叉樹(shù)。 3. hashmap是如何解決hash沖突的 4. 進(jìn)程與線(xiàn)程區(qū)別 5. 寫(xiě)了一個(gè)二分查找和單例模式 6. http中的同步和異步 7. 聊了一些項(xiàng)目上做的東西,問(wèn)了問(wèn)職業(yè)規(guī)劃

由于二面面試官不是做Android,本來(lái)面試我的人臨時(shí)開(kāi)會(huì)去了,所以這一輪面試沒(méi)怎么問(wèn)android相關(guān)知識(shí),不過(guò)二面面試官一直是微笑,所以這一輪很輕松,更像是一起討論問(wèn)題。 面試完已經(jīng)是下午4:30了,由于面試當(dāng)天是星期五,而周五美團(tuán)的會(huì)議比較多,所以等了會(huì),二面面試官說(shuō)三面面試官在開(kāi)會(huì),面試另約時(shí)間,我還是說(shuō)這次一次面試完吧,這一等就等了2個(gè)半小時(shí),期間hr跟我說(shuō)三面面試官是個(gè)大牛。

三面

  1. 我認(rèn)為Android做的優(yōu)秀的幾個(gè)地方,然后又根據(jù)我說(shuō)的問(wèn)了問(wèn)比較深入問(wèn)題。 2. Android是如何進(jìn)行資源管理的。 3. java比較重要的幾個(gè)特性 4. 網(wǎng)絡(luò)五層結(jié)構(gòu),每一層協(xié)議,由于我網(wǎng)絡(luò)不是很好,還問(wèn)了一些其他的問(wèn)題(例如MAC地址和ip地址的區(qū)別等)。 5. 為什么離開(kāi)原來(lái)公司,以及職業(yè)規(guī)劃,然后因?yàn)槊嬖囃甏蟾啪屯砩?點(diǎn)了,就先讓我回去,下周讓hr跟我聯(lián)系,我想這是應(yīng)該通過(guò)面試了吧。

美團(tuán)技術(shù)還是很厲害的,從面試官的水平就可以看出來(lái),尤其是外賣(mài)核心部門(mén),辦公環(huán)境是不錯(cuò),但是感覺(jué)就是有點(diǎn)亂,不知道是不是因?yàn)榻裉烀嬖嚨娜撕芏?,基本上一直有很多人?lái)回走動(dòng),有一些嘈雜。

小米TV

一面

可能是因?yàn)橐幻媸俏业膶W(xué)長(zhǎng),所以沒(méi)有問(wèn)我很多技術(shù)的問(wèn)題,聊了聊我做的向項(xiàng)目,然后聊了一會(huì)OpenGL、GLSurfaceView和Shader,主要聊了OpenGL繪制方法,還有一些Binder相關(guān)知識(shí),感覺(jué)非常輕松,還想著如果面試都這么輕松就好了,然后就直接下一面了。

二面

二面面試官看上去很斯文,但是還是一個(gè)對(duì)技術(shù)精益求精的人,問(wèn)的問(wèn)題都很細(xì),具體問(wèn)題的順序擠不太清楚了,大概問(wèn)了下面幾個(gè)問(wèn)題。

  1. 單例,快排,回型打印二維數(shù)組 2. 寫(xiě)一個(gè)死鎖,死鎖是怎樣產(chǎn)生的,怎樣防止死鎖 3. Acticity啟動(dòng)模式有幾種,分別代表什么意思 4. 聊項(xiàng)目都做了些什么

三面

leader是一個(gè)很有親和力的人,上來(lái)就跟我說(shuō)前面技術(shù)已經(jīng)問(wèn)的差不多了,這里就不詢(xún)問(wèn)我詳細(xì)的技術(shù)了,就出了一道算法題,需要說(shuō)出時(shí)間和空間復(fù)雜度,以及有沒(méi)有更優(yōu)解。

  1. 字符串反轉(zhuǎn),討論復(fù)雜度。 2. 聊經(jīng)歷和項(xiàng)目

HR面

HR面問(wèn)問(wèn)題都是一個(gè)模板刻出來(lái),都是例行公事的詢(xún)問(wèn),bulabula……然后就算完成面試。 從整體來(lái)說(shuō),TV更需要一個(gè)測(cè)試開(kāi)發(fā),但是我還是想做開(kāi)發(fā),暫時(shí)不想做測(cè)試,所以我估計(jì)TV是不會(huì)給我offer了,雖然說(shuō)了過(guò)幾天會(huì)正式給我發(fā)offer,最后也沒(méi)法。
小米TV在一個(gè)獨(dú)立的小院子里,環(huán)境還是不錯(cuò)的,整體的發(fā)展也可以,畢竟是小米生態(tài)中重要的一個(gè)部分。

網(wǎng)易

網(wǎng)易大樓是在百度大樓的旁邊,感覺(jué)還是不錯(cuò)的,來(lái)的稍微有點(diǎn)早,在前臺(tái)等了20分鐘左右的樣子,面試官就帶我去面試了。

筆試

具體的內(nèi)容記不太清楚了,大概有以下幾個(gè)類(lèi)型,都還是比較基本的。 選擇題、程序輸出題、四道算法、簡(jiǎn)答

  1. 給定一個(gè)int型 n,輸出1~n的字符串例如 n = 4 輸出“1 2 3 4” 2. 輸出所有的笛卡爾積組合 3. 單例模式 4. 最長(zhǎng)上升子序列

都不是很難,基本上都能作出來(lái)。

一面

一面面試官是資深的Android開(kāi)發(fā)工程師,的確水平很高。所有的問(wèn)題問(wèn)的都很詳細(xì),很多細(xì)節(jié),面試官都能清晰的說(shuō)出來(lái),的確水平很高。 屬于循序漸進(jìn)的問(wèn)題方式,從簡(jiǎn)單的知識(shí)入手,逐漸深入,直到你回答不出來(lái)而且問(wèn)的都是你自認(rèn)為很擅長(zhǎng)的知識(shí)點(diǎn),可見(jiàn)面試官的功力有多深厚,深深的佩服。 我下面大概說(shuō)一些問(wèn)題,但是到最后總能問(wèn)到很深入的地方。

  1. 對(duì)剛才做的題,一些錯(cuò)的地方做了討論,主要是類(lèi)的加載和內(nèi)部類(lèi)方面的知識(shí),尤其一些深入到JVM層的知識(shí)的確自己有一些不足,不過(guò)大部分都還是能答出來(lái)。 2. 雙親委托機(jī)制,類(lèi)的五個(gè)加載過(guò)程。 3. java類(lèi)加載器的加載流程。 4. Binder機(jī)制,從java到framework再到kenral層,面試官問(wèn)的都很詳細(xì),遇到不會(huì)的也都會(huì)跟我解釋。 5. Serializable和Parcelable的區(qū)別。 6. View的繪制流程,詳細(xì)到framework代碼,討論到不確定的地方,立馬打開(kāi)電腦和我一起看源碼。 7. 事件分發(fā)機(jī)制。 8. 常用設(shè)計(jì)模式,使用靜態(tài)內(nèi)部類(lèi)實(shí)現(xiàn)單例的原理是什么。 9. 線(xiàn)程同步,CopyOnWriteArrayList怎樣實(shí)現(xiàn)。 10. Volley源碼,EventBus源碼。

面試完后就到12點(diǎn)了,討論了1個(gè)半小時(shí),跟我說(shuō)我這關(guān)過(guò)了基本上就沒(méi)問(wèn)題了,面試官還是一個(gè)很幽默的人,帶我去網(wǎng)易食堂吃了頓飯,的確這里的飯?zhí)貏e好吃,回來(lái)后,休息了一會(huì),就開(kāi)始Leader面了

二面

Leader面,我還以為至少要3輪技術(shù)面呢,沒(méi)想到直接就到leader面試了,后來(lái)才知道第一輪面試的結(jié)果還是很重要的,一面面試官是非常資深的工程師,只要通過(guò)一面了基本就沒(méi)問(wèn)題了。

  1. 項(xiàng)目介紹,聊一些項(xiàng)目上的問(wèn)題 2. 下拉listview的實(shí)現(xiàn),需要注意的地方和優(yōu)化的地方(不是lsitview的優(yōu)化,是下拉的優(yōu)化)。 3. Android上一些優(yōu)化方案 4. 介紹了一下現(xiàn)在做的項(xiàng)目,大體說(shuō)明了現(xiàn)在所用到的技術(shù)。

總體感覺(jué)網(wǎng)易的氛圍還是非常好的,技術(shù)實(shí)力非常雄厚,leader技術(shù)能力也很強(qiáng),并且一面面試官告訴我,leader有時(shí)候還會(huì)自己寫(xiě)一些代碼,一般到了leader很少有寫(xiě)代碼的了。

hr面

一樣的流程,各種談,說(shuō)面試官對(duì)我評(píng)價(jià)非常高,希望我能來(lái)之類(lèi)的話(huà),然后就算面試結(jié)束了。

小米

這是第二次面試消息,這次是小米的核心部門(mén),MUI部門(mén),主要做閱讀類(lèi)app,聽(tīng)說(shuō)發(fā)展還是很不錯(cuò)的,為什么要面試兩次小米呢,因?yàn)橹皟?nèi)推過(guò)小米,一周都沒(méi)有消息,我就在網(wǎng)上投了簡(jiǎn)歷,等面試了小米TV,這邊又叫我去面試。到了小米前臺(tái),前臺(tái)沒(méi)人,我問(wèn)保安,保安讓我打HR電話(huà),結(jié)果HR也不接電話(huà),就這樣等了半個(gè)多小時(shí),HR終于回過(guò)來(lái)電話(huà),打電話(huà)讓面試官把我接上去了,一面面試官還以為我不來(lái)了。

一面

  1. 聊項(xiàng)目,GLSufaceView,OpengGL,Shader相關(guān)一些知識(shí),在項(xiàng)目中做的優(yōu)化 2. gc是根據(jù)什么來(lái)回收一個(gè)對(duì)象的,引用計(jì)數(shù)和gc root分別怎么實(shí)現(xiàn)。 3. 怎樣會(huì)產(chǎn)生內(nèi)存泄露,舉一個(gè)具體的例子,使用什么檢查內(nèi)存泄露 4. 自定義View的繪制流程 5. 給出二叉樹(shù)和一個(gè)值,找出所有和為這個(gè)值的路徑;{1,3}{3,6}{3,4}{6,8}區(qū)間去重,最少去掉幾個(gè)集合,可以讓這個(gè)集合沒(méi)有交集。

二面

  1. 什么是ANR,Activity、BroadcastReceiver、Service對(duì)ANR時(shí)間限制分別是多少,怎么處理ANR,除了系統(tǒng)生成trace.txt文件,怎么在程序中檢測(cè)ANR。寫(xiě)出偽代碼。 2. 編解碼一些知識(shí),I幀,B幀,P幀區(qū)別。 3. Android一些優(yōu)化方案。 4. 算法 n/m,怎么判斷得數(shù)是無(wú)限循環(huán)小數(shù)。

三面

三面面試官看上去很年輕,人也特別幽默,不過(guò)技術(shù)還是沒(méi)得說(shuō)。 1. 介紹項(xiàng)目。 2. 事件分發(fā)機(jī)制。 3. 算法,將一個(gè)字符串轉(zhuǎn)換成int型數(shù)字,考慮 錯(cuò)誤輸入,溢出,正負(fù)值等一些條件,考細(xì)心。 4. 給出一個(gè)搜索二叉樹(shù),輸出一個(gè)排序好的雙向鏈表。

四面

本來(lái)以為是HR面,結(jié)果不是,應(yīng)該leader面,上來(lái)就說(shuō)技術(shù)就不面了,介紹自己的項(xiàng)目中覺(jué)得做的最好的幾個(gè)部分,大概說(shuō)了下,接下來(lái)就是問(wèn)了為什么離開(kāi)原來(lái)公司,為什么選擇小米 bulabula…..面完之后,說(shuō)今天太晚了(晚上快8點(diǎn)了),hr已經(jīng)走了,下周讓hr跟你電話(huà)聯(lián)系吧,把我送到樓下。
第二周小米就發(fā)來(lái)了面試通過(guò)的消息,具體談了一些薪資待遇問(wèn)題。

百度

一面

一面面試官的思維非常跳躍,經(jīng)常我說(shuō)到一半的問(wèn)題,突然詢(xún)問(wèn)其他相關(guān)問(wèn)題,然后回答完再繼續(xù)之前的說(shuō)下去,有些許不適應(yīng)這個(gè)節(jié)奏。順序可能不太對(duì)。

  1. 類(lèi)的加載過(guò)程,Person person = new Person();為例進(jìn)行說(shuō)明。 2. JVM相關(guān)知識(shí),GC機(jī)制。 3. 類(lèi)的加載器,雙親機(jī)制,Android的類(lèi)加載器。 4. Android中進(jìn)程的級(jí)別,以及各自的區(qū)別。 5. 插件化原理。 6. 集合框架,list,map,set都有哪些具體的實(shí)現(xiàn)類(lèi),區(qū)別都是什么。 7. concurrentHashmap原理,原子類(lèi)。 8. volatile原理。 9. Binder機(jī)制。 10. View的繪制流程,事件傳遞機(jī)制,Handler異步消息機(jī)制。 11. Interger中的128(-128~127),這里考的是常量池的概念,這個(gè)沒(méi)回答上來(lái)。 12. 線(xiàn)程池的相關(guān)知識(shí)。 13. Handler機(jī)制,HandlerThread實(shí)現(xiàn)等等。 14. LRUCache算法是怎樣實(shí)現(xiàn)的。

二面

二面面試官看上去挺面善的,所以氣氛就不那么緊張了,說(shuō)實(shí)話(huà)來(lái)百度還是有點(diǎn)小小的緊張的。

  1. 說(shuō)了說(shuō)項(xiàng)目中相關(guān)的知識(shí)。 2. 聊了聊之前做過(guò)的項(xiàng)目。 3. 內(nèi)存泄露,怎樣查找,怎么產(chǎn)生的內(nèi)存泄露。 4. 怎樣計(jì)算一張圖片的大小,加載bitmap過(guò)程(怎樣保證不產(chǎn)生內(nèi)存溢出),二級(jí)緩存,LRUCache算法。 5. 簡(jiǎn)單介紹一下java中的泛型,泛型擦除以及相關(guān)的概念。 6. Android優(yōu)化相關(guān)的只是,布局優(yōu)化、內(nèi)存優(yōu)化等等。 7. SQL相關(guān)的知識(shí)優(yōu)化的方案,這里我直接說(shuō)不太了解,就過(guò)了。 8. 算法題,m * n的矩陣,能形成幾個(gè)正方形(2 * 2能形成1個(gè)正方形,2 * 3 2個(gè),3 * 3 6個(gè))

三面

因?yàn)槊看蚊嬖嚩际怯杏涗浀模匀婷嬖嚬賳?wèn)題的技術(shù)問(wèn)題就不那么細(xì)節(jié)了,大體以討論的方式跟我聊,大體聊了以下幾個(gè)方面,當(dāng)然越深入,面試官對(duì)你的評(píng)價(jià)就越高

  1. 項(xiàng)目相關(guān)。 2. Android優(yōu)化.。 3. 插件化相關(guān)技術(shù),熱修補(bǔ)技術(shù)是怎樣實(shí)現(xiàn)的,和插件化有什么區(qū)別。

其他的都記不太清楚了,總體來(lái)說(shuō)聊的還是不錯(cuò)的,本來(lái)以為百度會(huì)有很多算法題,結(jié)果只出了一道(僥幸。。。),本來(lái)還要有l(wèi)eader面,三面面試官還是非常好的,跟我說(shuō)他們幾個(gè)技術(shù)覺(jué)得我還是不錯(cuò)的,就看leader了,結(jié)果leader有事,出去了,不知道什么時(shí)候回來(lái),就約當(dāng)周的下班時(shí)間過(guò)去就好,然后面試官親自把我送到了門(mén)口,跟我聊了很多,挺不錯(cuò)的。

四面

四面是經(jīng)理面,感覺(jué)經(jīng)理已經(jīng)不做技術(shù)了,技術(shù)基本上沒(méi)有詢(xún)問(wèn),大體問(wèn)了一下項(xiàng)目,以及自己在項(xiàng)目中都做了一些什么,聊了聊其他的話(huà)題,就完事了,然后就讓我回去了, 大老遠(yuǎn)的跑過(guò)來(lái),就談了不到半個(gè)小時(shí),好吧,誰(shuí)讓人家是百度呢,回去等hr電話(huà)吧。 過(guò)了幾天,hr聯(lián)系我談薪資待遇等,又讓我跑了一趟,面試這么多家,最累的一次,誰(shuí)讓百度是牛*呢,一頓說(shuō),bulabula…… 感覺(jué)近幾年百度發(fā)展的不是很好,一直在走下坡路,不知道是不是在憋大招,很多百度人都出來(lái)了,不過(guò)百度畢竟是百度,還是很厲害的。

阿里

夢(mèng)寐以求的阿里終于找我來(lái)面試了,之前不管是內(nèi)推還是網(wǎng)絡(luò)上投遞都被拒絕了,原因是我工作不到一年,沒(méi)辦法誰(shuí)讓馬云爸爸太厲害,我投遞的是杭州的天貓,是做虛擬現(xiàn)實(shí)的小組(剛聽(tīng)到這個(gè)名字感覺(jué)和自己不太相符),這是我到面試完后,才知道的,面試官也跟我說(shuō)Android上的需求可能不會(huì)很多,更多的是VR技術(shù)在Android上的應(yīng)用,包含OpenGL等技術(shù)。

一面

  1. 詢(xún)問(wèn)了我博客上寫(xiě)的一些東西,從項(xiàng)目立意談起,到設(shè)計(jì),再到詳細(xì)的技術(shù)實(shí)現(xiàn),可謂是面面俱到,由于自己寫(xiě)的博客還是比較熟悉,回答的還不錯(cuò)。 2. GLSurfaceView的相關(guān)知識(shí),OpenGL,Shader,繪制流程。 3. 詢(xún)問(wèn)當(dāng)前做的項(xiàng)目,以及到具體的實(shí)現(xiàn)和優(yōu)化。 4. 多進(jìn)程間的通訊,Binder機(jī)制。 5. 詢(xún)問(wèn)看過(guò)哪些框架源碼,EventBus,Volley講了一下。

大概聊了一個(gè)小時(shí)左右,聊得還可以,基本上都回答上了,中間給了我很多建議,不懂的地方,也會(huì)仔細(xì)跟我講解一番,其實(shí)有一半的時(shí)間都是跟我聊產(chǎn)品,為什么這個(gè)產(chǎn)品好,怎樣做才能迎合市場(chǎng),然后怎么設(shè)計(jì)整個(gè)產(chǎn)品等,感覺(jué)跟我現(xiàn)在水平不是一個(gè)層次的,果然,第二天就給我發(fā)了一封郵件,說(shuō)我現(xiàn)在暫時(shí)不太合適投遞的崗位。

面試結(jié)果

除了阿里淘寶外,其他的公司基本都拿到offer,這段時(shí)間把華為這邊的工作都交接完,休息幾天,如果有空的話(huà)回家停幾天。

總結(jié)

自己對(duì)于互聯(lián)網(wǎng)有一些小小的見(jiàn)解:

隨著資本的冷卻,整個(gè)互聯(lián)網(wǎng)市場(chǎng)也逐漸的冷靜下來(lái)。Android應(yīng)用開(kāi)發(fā)從一開(kāi)始能說(shuō)幾個(gè)四大組件的名詞,能隨便寫(xiě)個(gè)監(jiān)聽(tīng)事件,就能拿到高達(dá)上萬(wàn)的月薪的時(shí)代了。歸根到底并不是工作難找了,而是Android應(yīng)用開(kāi)發(fā)工程師這個(gè)職位已經(jīng)趨于正常,再也不是沒(méi)什么技術(shù)也能拿高工資的香餑餑。當(dāng)然這個(gè)也不是絕對(duì)的,對(duì)于中高級(jí)的開(kāi)發(fā)人員來(lái)說(shuō),市場(chǎng)還是比較缺少的,尤其是知名企業(yè)對(duì)于招聘員工來(lái)說(shuō),不僅要求有過(guò)硬的技術(shù),還要求有高素質(zhì),好的教育背景等等??偟膩?lái)說(shuō),高工資可以給你,但是前提條件是你要足夠優(yōu)秀,或者說(shuō)讓面試官覺(jué)得你很優(yōu)秀。
其實(shí)面試過(guò)程就是一個(gè)把你自己推銷(xiāo)給別人的過(guò)程,對(duì)于我們(畢業(yè)不久的同學(xué),因?yàn)槲耶厴I(yè)不到一年)來(lái)說(shuō)就是要讓面試官感覺(jué)你技術(shù)好,有培養(yǎng)價(jià)值。感慨有點(diǎn)多了,還是來(lái)點(diǎn)干貨吧,大概列舉一下每一輪面試的大概范圍和深度,但是也不是絕對(duì)的,還是要看具體情況。

筆試

對(duì)于社招的同學(xué)來(lái)說(shuō),基本上不需要筆試,但是也有公司是需要的,例如 今日頭條和網(wǎng)易都有筆試。筆試都是比較基礎(chǔ)的一些知識(shí),Java、Android等方面的,一般不會(huì)有網(wǎng)絡(luò),計(jì)算機(jī)等方面的筆試,一般情況下大家都能答出來(lái)。
一、二面
近一段時(shí)間的面試經(jīng)歷來(lái)說(shuō),一、二面的問(wèn)題沒(méi)有什么很大的區(qū)別(公司基本上都有3面技術(shù)面,但是也有例外,我在網(wǎng)易就是2面技術(shù)面。),基本上都是一線(xiàn)開(kāi)發(fā)人員。主要考察你是否有牢固的基礎(chǔ)知識(shí)和是否在平常開(kāi)發(fā)中能熟練使用。
是否能講解清楚你所做的項(xiàng)目,以及使用到的相關(guān)知識(shí)。
Android基礎(chǔ)知識(shí)
Java基礎(chǔ)知識(shí),大概是多線(xiàn)程,線(xiàn)程安全,集合類(lèi),JVM,類(lèi)相關(guān)知識(shí)等。
Android一些源碼的閱讀
優(yōu)秀的第三方框架源碼閱讀

三、四面
一般公司都是三輪技術(shù)面,但是也有四輪技術(shù)面的,不過(guò)不多。很多公司基本上每一輪面試官都會(huì)記錄他所詢(xún)問(wèn)的問(wèn)題,以便給下一輪面試官作參考,還有就是避免對(duì)同一個(gè)知識(shí)點(diǎn)多次詢(xún)問(wèn)。所以到了這輪面試,基本上不會(huì)再詢(xún)問(wèn)比較基礎(chǔ)的知識(shí)。
會(huì)從兩個(gè)方面考察, 廣度:比較新的技術(shù)(Rxjava,插件化等),JVM,GC,網(wǎng)絡(luò),數(shù)據(jù)庫(kù),Android(一般不會(huì)詢(xún)問(wèn)之前面試官問(wèn)過(guò)的問(wèn)題)。
深度:一般會(huì)通過(guò)1或2個(gè)問(wèn)題來(lái)考察,例如:map接口下都有什么子類(lèi)->hashmap和hashtable區(qū)別->hashmap實(shí)現(xiàn)原理->怎么解決hash沖突->是否了解concurrentHashmap->concurrentHashmap實(shí)現(xiàn)原理->volatile實(shí)現(xiàn)原理(concurrentHashmap讀是不加鎖的,使用到了volatile)。

項(xiàng)目中的貢獻(xiàn),所做的優(yōu)化。
設(shè)計(jì)能力,基本上不多,這個(gè)要看面試的崗位,因?yàn)槲疫@里面試的只是高級(jí)開(kāi)發(fā),并不是架構(gòu)。
工作中的亮點(diǎn)和突出。

hr面
基本上到了這輪,你就算通過(guò)面試了。hr會(huì)詢(xún)問(wèn)一些你的經(jīng)歷,最主要的還是和你商定薪資待遇。在這輪,大家應(yīng)該要對(duì)自己的薪資水平有一個(gè)大體的了解,一般都是在原來(lái)的工資基礎(chǔ)上增長(zhǎng)20%~30%的樣子,當(dāng)然,如果你在面試過(guò)程中表現(xiàn)非常優(yōu)秀,也可以不受這個(gè)限制。當(dāng)然如果公司誠(chéng)心要你,就算你要的工資過(guò)高,hr也會(huì)委婉的告訴你,不會(huì)直接把你pass。

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

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

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