轉(zhuǎn)載請注明出處:http://blog.csdn.net/a296777513/article/details/73610719
前言
人生困難重重,在漫長而艱辛的前行路上纤子,堅(jiān)持不懈搬瑰、腳踏實(shí)地的“低頭拉車”固然重要款票。但認(rèn)清形勢、找準(zhǔn)目標(biāo)的“抬頭看路”也很關(guān)鍵泽论,甚至決定著你能否達(dá)到成功彼岸艾少。只尋求遠(yuǎn)方的夢想,而不付出當(dāng)下的努力翼悴,那是迷夢缚够;只知道埋頭苦干,而不認(rèn)清方向鹦赎,那是徒勞潮瓶。
先簡單說說我最近的面試經(jīng)歷吧。面試的公司很多钙姊,大部分最后都能得到令人滿意的結(jié)果毯辅,我將這些體會記錄下來,面了這么多公司煞额,如果不留下什么思恐,那豈不是太浪費(fèi)了。對于我來說膊毁,這也是一次自我檢查胀莹,在這次面試中總結(jié)經(jīng)驗(yàn),認(rèn)清自己婚温,同時希望這些對即將換工作或者打算看看其他機(jī)會的你有一些幫助描焰。
以下的部分有具體的面試經(jīng)歷,也有自己的一些總結(jié)面試必備技能和自己的一些感想栅螟。
為何離開華為
來華為的主要原因是:
增長自己的見識荆秦,很好的發(fā)展自己。很好的發(fā)展自己力图,就需要一個平臺步绸,通常這個平臺是大公司才能提供,大公司會有一套完整的機(jī)制來培養(yǎng)你吃媒,讓你有更多的選擇瓤介,可以選擇自己喜歡做的事情。所以我建議剛畢業(yè)的同學(xué)赘那,最好還是選擇大公司刑桑,哪怕以后要跳槽,大公司也是非常好的跳板募舟。在華為的這一年祠斧,最大的收獲并不是技術(shù)上的成長,而是自己的見識和思考問題的能力胃珍。雖然有很多人不滿華為梁肿,公司大了蜓陌,肯定不可避免會出現(xiàn)很多問題,但是總體來說華為還是一個非常了不起的企業(yè)吩蔑。
離開華為的主要原因是:我的職業(yè)規(guī)劃與華為給我的規(guī)劃不相符钮热,還有就是流程化的東西太繁瑣,自己有一些不適應(yīng)烛芬,所以選擇離開了華為隧期。非常感謝我高總(直接領(lǐng)導(dǎo))和邦邦(師傅),在華為的這一年中給予我非常多的幫助赘娄,在我跟領(lǐng)導(dǎo)溝通離開的想法時仆潮,領(lǐng)導(dǎo)開誠布公的跟我聊了很多,最終我還是下定決定要離開華為遣臼,領(lǐng)導(dǎo)建議我先去面試一些公司性置,等找到合適的再走,裸辭的話社保和心態(tài)上都會有一些問題揍堰,這樣的領(lǐng)導(dǎo)真是沒話說了鹏浅,在華為很多領(lǐng)導(dǎo)都是不放人的,很多都把員工的下一家拖黃了才放人屏歹。在這一年獲得的成績:
- 北京研究所第一屆Hackathon 二等獎2. 轉(zhuǎn)正績效是A3. 年終績效 B+隐砸,獲得明日之星
準(zhǔn)備
其實(shí)我很早就開始準(zhǔn)備了,準(zhǔn)確來說也不算準(zhǔn)備蝙眶,只是一直在總結(jié)Android相關(guān)方面的知識季希,因?yàn)樵谌A為雖然工作有時候比較多,但是還是有大把時間可以自己學(xué)習(xí)一些感興趣的方向幽纷。從過完年回來式塌,我就有計(jì)劃的復(fù)習(xí)和總結(jié)了一些知識。
看過的書籍霹崎,這里并不是泛泛的讀一遍珊搀,而是詳細(xì)理解了大多數(shù)內(nèi)容,通俗一點(diǎn)就是可以用自己的話將相應(yīng)的知識解讀出來尾菇。《Android開發(fā)藝術(shù)探索》(這本書真心不錯囚枪,我反復(fù)讀了4派诬、5遍)、《Android群英傳》(比較接近開發(fā)使用链沼,因?yàn)樽鲞^一些應(yīng)用開發(fā)默赂,讀起來還是比較簡單的,讀了2遍)括勺、《深入理解Java虛擬機(jī)》(也是一部神作缆八,可以讓你清晰的理解JVM曲掰,讀了2遍,理解的不是很透徹)奈辰、《劍指offer》(感覺面試中碰到的算法栏妖,80%都能找到相應(yīng)的題目,保證所有的題都可以手寫出來就行)奖恰。4個月精讀了以上書籍吊趾,還有其他的都是簡單了解,這里就不列舉了瑟啃,讀完這些書论泛,應(yīng)該可以讓你上一個層次吧(媽媽再也不用擔(dān)心我面試?yán)病?br>
刷題,主要是LeetCode(大概刷了300道題左右蛹屿,每天3-6道屁奏,堅(jiān)持下來,需要多復(fù)習(xí)错负,因?yàn)楹芏囝}過一段時間會忘記)坟瓢,還有看過一些牛課網(wǎng)。
看別人的面試經(jīng)驗(yàn)湿颅,主要在網(wǎng)上载绿,這里我列舉兩個比較好的。 Android客戶端面試題集錦
Android阿里面試題錦集
投遞簡歷
一份好的簡歷是非常有必要的油航,需要突出你的重點(diǎn)和閃光點(diǎn)崭庸,具體怎么寫簡歷可以參考
CodeKK說簡歷
有了一份好簡歷,接下來就是投遞簡歷谊囚,一般是:拉鉤+BOSS直聘+內(nèi)推怕享,從我這次面試機(jī)會來看,三者比例是2:2:1镰踏,也可能我工作經(jīng)驗(yàn)還不到一年函筋,內(nèi)推滴滴、阿里和騰訊直接就把我的簡歷刷掉了奠伪,但是內(nèi)推也是具體到某個部門跌帐,如果被刷掉也不要灰心,現(xiàn)在大公司基本上各個部門都有自己的hr绊率,可以在拉頭和BOSS上多投遞一些谨敛,萬一其他部門看中你呢?
面試經(jīng)過
這里我僅僅記錄一些問過的題目(能記住的)滤否,答案我就不寫出來脸狸,基本上都可以在網(wǎng)上找到相應(yīng)的答案。
作業(yè)盒子
時間有點(diǎn)久藐俺,很多問題記得不太清炊甲,大概有以下內(nèi)容泥彤。
一面
- Android一些優(yōu)化方案 2. 什么是過渡繪制,如何防止過渡繪制 2. 事件分發(fā)機(jī)制 3. ListView的優(yōu)化 4. Binder機(jī)制 5. 在多進(jìn)程中卿啡,Application會啟動幾次 6. 單例模式吟吝,雙鎖原理,volatile原理牵囤,靜態(tài)內(nèi)部類實(shí)現(xiàn)單例的原理爸黄。
二面
二面面試官是leader?反正應(yīng)該不是做android的揭鳞,Android的相關(guān)知識問的也不多炕贵,大多是項(xiàng)目上的東西。
- Java多線程野崇,synchronized 2. 聊項(xiàng)目称开,都具體做了什么。 3. Binder機(jī)制
三面
應(yīng)該是leader吧乓梨,主要了解一些個人的情況鳖轰,以及一些項(xiàng)目,最后問了期望的薪資扶镀,然后當(dāng)場就給了offer蕴侣。
畢竟1年多沒有面試了,第一場面試還是給我了很大的自信臭觉,也知道現(xiàn)在自己大概能要多少工資是合適的昆雀,所以同學(xué)們準(zhǔn)備跳槽的時候,最好先面幾家小公司蝠筑,盒子還是一個很不錯的公司狞膘,整體的辦公環(huán)境挺好的,現(xiàn)在也處于盈利狀態(tài)什乙,在教育類的app中也排的上名次挽封。
快手
快手就在五道口地鐵站出口不遠(yuǎn)地方,能看到很顯眼的LOGO臣镣,看上去很霸氣的樣子辅愿,但是當(dāng)我進(jìn)入到快手前臺的時候,連一個標(biāo)示符都沒有忆某, 一度以為自己走進(jìn)了假快手渠缕,好吧,我是來面試褒繁,這些都不重要,接下來接待的人員把我領(lǐng)進(jìn)了一個小屋里馍忽,等待面試的開始棒坏。
一面
面試官是一個很fashion的人燕差,是從小米核心部門過來的,是Android小組的領(lǐng)導(dǎo)坝冕。
- 問了關(guān)于數(shù)據(jù)庫的一些問題徒探,SQLite的相關(guān)操作,沒辦法喂窟,我在華為唯一一個做的和java相關(guān)的項(xiàng)目测暗,但是不太擅長數(shù)據(jù)庫。 2. 網(wǎng)絡(luò)相關(guān)的問題磨澡,網(wǎng)絡(luò)的五層模型碗啄,又問了TCP和UDP,還有Android相關(guān)的長連接稳摄,這里問的比較深稚字。 3. 開始Android先關(guān)的知識,Handler機(jī)制厦酬,Acticity的生命周期以及四種啟動模式胆描,各自特點(diǎn),Service的兩種啟動模式生命周期仗阅,如果同時使用兩種啟動模式是否可以昌讲,順勢講到Binder,什么時候可以得到控件的大小减噪,最后寫了一道鏈表反轉(zhuǎn)的算法題
第一面這就算過關(guān)了等待二面短绸。
二面
- 問了項(xiàng)目相關(guān)的問題,這部分根據(jù)自己的項(xiàng)目經(jīng)驗(yàn)旋廷,由于大家的經(jīng)驗(yàn)都不同鸠按,這里我就不詳細(xì)說了。 2. 設(shè)定一個場景饶碘,怎么去實(shí)現(xiàn)相應(yīng)的功能目尖,因?yàn)榭焓诌@個部門想做社交,因此這里是問我是如何實(shí)現(xiàn)微信的聯(lián)系人頁面(包括與服務(wù)端有什么樣的交互) 3. 最后也是一個算法扎运,寫出所有數(shù)組的子序列
二面面試官是這個組的leader瑟曲,跟我講了現(xiàn)在這個組的發(fā)展情況和快手現(xiàn)在的情況,由于快手成長很快豪治,所以不能僅僅依靠一個APP洞拨,還需要在其他方面進(jìn)行一些嘗試,而這個組的任務(wù)就是在一些方面做一些嘗試负拟,大概就是這個樣子烦衣。 二面也順利通過,接下來就是HR面了,這時候正好是12點(diǎn)花吟,他們要去吃飯秸歧,不過快手是提供午餐和晚餐的,第一個面試官帶給我一份飯衅澈,還不錯键菱,后來HR跟我說,現(xiàn)在只是過渡時期今布,后面午餐和晚餐會改成自助餐的形式经备。
三面
HR上來很親切,問了我一些面試的情況部默,難不難之類的侵蒙,然后又聊了聊我大學(xué)和研究生情況,我只想說我“too simple , too naive “甩牺,大概了解我后蘑志,只跟我聊我的不足,以此來壓低我期望的薪水贬派。說了一下薪資期望急但,加了微信,讓我回去等待搞乏,說發(fā)offer大概是2周時間波桩,因?yàn)樾枰吒鞣N審批流程,讓我不要著急请敦。
快手是一個很年輕的公司镐躲,技術(shù)還是需要一定的積累,希望不要像小咖秀一樣曇花一現(xiàn)侍筛。
美團(tuán)外賣
一面
簡歷上寫的項(xiàng)目問了一遍萤皂,然后開始問知識點(diǎn)。
- volley的源代碼匣椰,在圖片緩存部分討論了挺長時間裆熙,http中緩存機(jī)制,Last-Modify的作用等禽笑。 2. fragment的生命周期 3. service一些知識 4. 事件分發(fā)機(jī)制 5. Binder實(shí)現(xiàn)機(jī)制入录,Stub類中asInterface函數(shù)作用,BnBinder和BpBinder區(qū)別佳镜。 6. gradle中buildToolsVersion和TargetSdkVersion的區(qū)別是什么 7. 手機(jī)適配一些方案 8. hashmap的實(shí)現(xiàn)原理 9. 靜態(tài)方法是否能被重寫
這些大概聊了1個半小時僚稿,開始的時候還有些緊張,慢慢聊開了蟀伸,就好多了蚀同,面試官的語速有點(diǎn)快缅刽,老是需要面試官重復(fù)一遍痹屹,我也不經(jīng)意間語速也變快了阁猜,不過能看出來面試官還是很厲害的。
二面
- 3次握手和4次揮手的原因,以及為什么需要這樣做谢肾。 2. 數(shù)據(jù)結(jié)構(gòu),搜索二叉樹的一些特性小泉,平衡二叉樹芦疏。 3. hashmap是如何解決hash沖突的 4. 進(jìn)程與線程區(qū)別 5. 寫了一個二分查找和單例模式 6. http中的同步和異步 7. 聊了一些項(xiàng)目上做的東西,問了問職業(yè)規(guī)劃
由于二面面試官不是做Android,本來面試我的人臨時開會去了微姊,所以這一輪面試沒怎么問android相關(guān)知識酸茴,不過二面面試官一直是微笑,所以這一輪很輕松兢交,更像是一起討論問題薪捍。 面試完已經(jīng)是下午4:30了,由于面試當(dāng)天是星期五配喳,而周五美團(tuán)的會議比較多酪穿,所以等了會,二面面試官說三面面試官在開會晴裹,面試另約時間被济,我還是說這次一次面試完吧,這一等就等了2個半小時涧团,期間hr跟我說三面面試官是個大牛只磷。
三面
- 我認(rèn)為Android做的優(yōu)秀的幾個地方,然后又根據(jù)我說的問了問比較深入問題泌绣。 2. Android是如何進(jìn)行資源管理的钮追。 3. java比較重要的幾個特性 4. 網(wǎng)絡(luò)五層結(jié)構(gòu),每一層協(xié)議阿迈,由于我網(wǎng)絡(luò)不是很好元媚,還問了一些其他的問題(例如MAC地址和ip地址的區(qū)別等)。 5. 為什么離開原來公司仿滔,以及職業(yè)規(guī)劃惠毁,然后因?yàn)槊嬖囃甏蟾啪屯砩?點(diǎn)了,就先讓我回去崎页,下周讓hr跟我聯(lián)系鞠绰,我想這是應(yīng)該通過面試了吧。
美團(tuán)技術(shù)還是很厲害的飒焦,從面試官的水平就可以看出來蜈膨,尤其是外賣核心部門屿笼,辦公環(huán)境是不錯,但是感覺就是有點(diǎn)亂翁巍,不知道是不是因?yàn)榻裉烀嬖嚨娜撕芏嗦恳唬旧弦恢庇泻芏嗳藖砘刈邉樱幸恍┼须s灶壶。
小米TV
一面
可能是因?yàn)橐幻媸俏业膶W(xué)長肝断,所以沒有問我很多技術(shù)的問題,聊了聊我做的向項(xiàng)目驰凛,然后聊了一會OpenGL胸懈、GLSurfaceView和Shader,主要聊了OpenGL繪制方法恰响,還有一些Binder相關(guān)知識趣钱,感覺非常輕松,還想著如果面試都這么輕松就好了胚宦,然后就直接下一面了首有。
二面
二面面試官看上去很斯文,但是還是一個對技術(shù)精益求精的人枢劝,問的問題都很細(xì)井联,具體問題的順序擠不太清楚了,大概問了下面幾個問題呈野。
- 單例低矮,快排,回型打印二維數(shù)組 2. 寫一個死鎖被冒,死鎖是怎樣產(chǎn)生的军掂,怎樣防止死鎖 3. Acticity啟動模式有幾種,分別代表什么意思 4. 聊項(xiàng)目都做了些什么
三面
leader是一個很有親和力的人昨悼,上來就跟我說前面技術(shù)已經(jīng)問的差不多了蝗锥,這里就不詢問我詳細(xì)的技術(shù)了,就出了一道算法題率触,需要說出時間和空間復(fù)雜度终议,以及有沒有更優(yōu)解。
- 字符串反轉(zhuǎn)葱蝗,討論復(fù)雜度穴张。 2. 聊經(jīng)歷和項(xiàng)目
HR面
HR面問問題都是一個模板刻出來,都是例行公事的詢問两曼,bulabula……然后就算完成面試皂甘。 從整體來說,TV更需要一個測試開發(fā)悼凑,但是我還是想做開發(fā)偿枕,暫時不想做測試璧瞬,所以我估計(jì)TV是不會給我offer了,雖然說了過幾天會正式給我發(fā)offer渐夸,最后也沒法嗤锉。
小米TV在一個獨(dú)立的小院子里,環(huán)境還是不錯的墓塌,整體的發(fā)展也可以瘟忱,畢竟是小米生態(tài)中重要的一個部分。
網(wǎng)易
網(wǎng)易大樓是在百度大樓的旁邊桃纯,感覺還是不錯的酷誓,來的稍微有點(diǎn)早,在前臺等了20分鐘左右的樣子态坦,面試官就帶我去面試了。
筆試
具體的內(nèi)容記不太清楚了棒拂,大概有以下幾個類型伞梯,都還是比較基本的。 選擇題帚屉、程序輸出題谜诫、四道算法、簡答
- 給定一個int型 n攻旦,輸出1~n的字符串例如 n = 4 輸出“1 2 3 4” 2. 輸出所有的笛卡爾積組合 3. 單例模式 4. 最長上升子序列
都不是很難喻旷,基本上都能作出來。
一面
一面面試官是資深的Android開發(fā)工程師牢屋,的確水平很高且预。所有的問題問的都很詳細(xì),很多細(xì)節(jié)烙无,面試官都能清晰的說出來锋谐,的確水平很高。 屬于循序漸進(jìn)的問題方式截酷,從簡單的知識入手涮拗,逐漸深入,直到你回答不出來而且問的都是你自認(rèn)為很擅長的知識點(diǎn)迂苛,可見面試官的功力有多深厚三热,深深的佩服。 我下面大概說一些問題三幻,但是到最后總能問到很深入的地方就漾。
- 對剛才做的題,一些錯的地方做了討論赌髓,主要是類的加載和內(nèi)部類方面的知識从藤,尤其一些深入到JVM層的知識的確自己有一些不足催跪,不過大部分都還是能答出來。 2. 雙親委托機(jī)制夷野,類的五個加載過程懊蒸。 3. java類加載器的加載流程。 4. Binder機(jī)制悯搔,從java到framework再到kenral層骑丸,面試官問的都很詳細(xì),遇到不會的也都會跟我解釋妒貌。 5. Serializable和Parcelable的區(qū)別通危。 6. View的繪制流程,詳細(xì)到framework代碼灌曙,討論到不確定的地方菊碟,立馬打開電腦和我一起看源碼。 7. 事件分發(fā)機(jī)制在刺。 8. 常用設(shè)計(jì)模式逆害,使用靜態(tài)內(nèi)部類實(shí)現(xiàn)單例的原理是什么。 9. 線程同步蚣驼,CopyOnWriteArrayList怎樣實(shí)現(xiàn)魄幕。 10. Volley源碼,EventBus源碼颖杏。
面試完后就到12點(diǎn)了纯陨,討論了1個半小時,跟我說我這關(guān)過了基本上就沒問題了留储,面試官還是一個很幽默的人翼抠,帶我去網(wǎng)易食堂吃了頓飯,的確這里的飯?zhí)貏e好吃欲鹏,回來后机久,休息了一會,就開始Leader面了
二面
Leader面赔嚎,我還以為至少要3輪技術(shù)面呢膘盖,沒想到直接就到leader面試了,后來才知道第一輪面試的結(jié)果還是很重要的尤误,一面面試官是非常資深的工程師侠畔,只要通過一面了基本就沒問題了。
- 項(xiàng)目介紹损晤,聊一些項(xiàng)目上的問題 2. 下拉listview的實(shí)現(xiàn)软棺,需要注意的地方和優(yōu)化的地方(不是lsitview的優(yōu)化,是下拉的優(yōu)化)尤勋。 3. Android上一些優(yōu)化方案 4. 介紹了一下現(xiàn)在做的項(xiàng)目喘落,大體說明了現(xiàn)在所用到的技術(shù)茵宪。
總體感覺網(wǎng)易的氛圍還是非常好的,技術(shù)實(shí)力非常雄厚瘦棋,leader技術(shù)能力也很強(qiáng)稀火,并且一面面試官告訴我,leader有時候還會自己寫一些代碼赌朋,一般到了leader很少有寫代碼的了凰狞。
hr面
一樣的流程,各種談沛慢,說面試官對我評價非常高赡若,希望我能來之類的話,然后就算面試結(jié)束了团甲。
小米
這是第二次面試消息逾冬,這次是小米的核心部門,MUI部門躺苦,主要做閱讀類app粉渠,聽說發(fā)展還是很不錯的,為什么要面試兩次小米呢圾另,因?yàn)橹皟?nèi)推過小米,一周都沒有消息雕沉,我就在網(wǎng)上投了簡歷集乔,等面試了小米TV,這邊又叫我去面試坡椒。到了小米前臺扰路,前臺沒人,我問保安倔叼,保安讓我打HR電話汗唱,結(jié)果HR也不接電話,就這樣等了半個多小時丈攒,HR終于回過來電話哩罪,打電話讓面試官把我接上去了,一面面試官還以為我不來了巡验。
一面
- 聊項(xiàng)目际插,GLSufaceView,OpengGL显设,Shader相關(guān)一些知識框弛,在項(xiàng)目中做的優(yōu)化 2. gc是根據(jù)什么來回收一個對象的,引用計(jì)數(shù)和gc root分別怎么實(shí)現(xiàn)捕捂。 3. 怎樣會產(chǎn)生內(nèi)存泄露瑟枫,舉一個具體的例子斗搞,使用什么檢查內(nèi)存泄露 4. 自定義View的繪制流程 5. 給出二叉樹和一個值,找出所有和為這個值的路徑慷妙;{1,3}{3,6}{3,4}{6,8}區(qū)間去重僻焚,最少去掉幾個集合,可以讓這個集合沒有交集景殷。
二面
- 什么是ANR溅呢,Activity、BroadcastReceiver猿挚、Service對ANR時間限制分別是多少咐旧,怎么處理ANR,除了系統(tǒng)生成trace.txt文件绩蜻,怎么在程序中檢測ANR铣墨。寫出偽代碼。 2. 編解碼一些知識办绝,I幀伊约,B幀,P幀區(qū)別孕蝉。 3. Android一些優(yōu)化方案屡律。 4. 算法 n/m,怎么判斷得數(shù)是無限循環(huán)小數(shù)降淮。
三面
三面面試官看上去很年輕超埋,人也特別幽默,不過技術(shù)還是沒得說佳鳖。 1. 介紹項(xiàng)目霍殴。 2. 事件分發(fā)機(jī)制。 3. 算法系吩,將一個字符串轉(zhuǎn)換成int型數(shù)字来庭,考慮 錯誤輸入,溢出穿挨,正負(fù)值等一些條件月弛,考細(xì)心。 4. 給出一個搜索二叉樹絮蒿,輸出一個排序好的雙向鏈表尊搬。
四面
本來以為是HR面,結(jié)果不是土涝,應(yīng)該leader面佛寿,上來就說技術(shù)就不面了,介紹自己的項(xiàng)目中覺得做的最好的幾個部分,大概說了下冀泻,接下來就是問了為什么離開原來公司常侣,為什么選擇小米 bulabula…..面完之后,說今天太晚了(晚上快8點(diǎn)了)弹渔,hr已經(jīng)走了胳施,下周讓hr跟你電話聯(lián)系吧,把我送到樓下肢专。
第二周小米就發(fā)來了面試通過的消息舞肆,具體談了一些薪資待遇問題。
百度
一面
一面面試官的思維非常跳躍博杖,經(jīng)常我說到一半的問題椿胯,突然詢問其他相關(guān)問題,然后回答完再繼續(xù)之前的說下去剃根,有些許不適應(yīng)這個節(jié)奏哩盲。順序可能不太對。
- 類的加載過程狈醉,Person person = new Person();為例進(jìn)行說明廉油。 2. JVM相關(guān)知識,GC機(jī)制苗傅。 3. 類的加載器抒线,雙親機(jī)制,Android的類加載器渣慕。 4. Android中進(jìn)程的級別十兢,以及各自的區(qū)別。 5. 插件化原理摇庙。 6. 集合框架,list遥缕,map卫袒,set都有哪些具體的實(shí)現(xiàn)類,區(qū)別都是什么单匣。 7. concurrentHashmap原理夕凝,原子類。 8. volatile原理户秤。 9. Binder機(jī)制码秉。 10. View的繪制流程,事件傳遞機(jī)制鸡号,Handler異步消息機(jī)制转砖。 11. Interger中的128(-128~127),這里考的是常量池的概念,這個沒回答上來。 12. 線程池的相關(guān)知識府蔗。 13. Handler機(jī)制晋控,HandlerThread實(shí)現(xiàn)等等。 14. LRUCache算法是怎樣實(shí)現(xiàn)的姓赤。
二面
二面面試官看上去挺面善的赡译,所以氣氛就不那么緊張了,說實(shí)話來百度還是有點(diǎn)小小的緊張的不铆。
- 說了說項(xiàng)目中相關(guān)的知識蝌焚。 2. 聊了聊之前做過的項(xiàng)目。 3. 內(nèi)存泄露誓斥,怎樣查找只洒,怎么產(chǎn)生的內(nèi)存泄露。 4. 怎樣計(jì)算一張圖片的大小岖食,加載bitmap過程(怎樣保證不產(chǎn)生內(nèi)存溢出)红碑,二級緩存,LRUCache算法泡垃。 5. 簡單介紹一下java中的泛型析珊,泛型擦除以及相關(guān)的概念。 6. Android優(yōu)化相關(guān)的只是蔑穴,布局優(yōu)化忠寻、內(nèi)存優(yōu)化等等。 7. SQL相關(guān)的知識優(yōu)化的方案存和,這里我直接說不太了解奕剃,就過了。 8. 算法題捐腿,m * n的矩陣纵朋,能形成幾個正方形(2 * 2能形成1個正方形,2 * 3 2個茄袖,3 * 3 6個)
三面
因?yàn)槊看蚊嬖嚩际怯杏涗浀牟偃恚匀婷嬖嚬賳栴}的技術(shù)問題就不那么細(xì)節(jié)了,大體以討論的方式跟我聊宪祥,大體聊了以下幾個方面聂薪,當(dāng)然越深入,面試官對你的評價就越高
- 項(xiàng)目相關(guān)蝗羊。 2. Android優(yōu)化.藏澳。 3. 插件化相關(guān)技術(shù),熱修補(bǔ)技術(shù)是怎樣實(shí)現(xiàn)的耀找,和插件化有什么區(qū)別翔悠。
其他的都記不太清楚了,總體來說聊的還是不錯的,本來以為百度會有很多算法題凉驻,結(jié)果只出了一道(僥幸腻要。。涝登。)雄家,本來還要有l(wèi)eader面,三面面試官還是非常好的胀滚,跟我說他們幾個技術(shù)覺得我還是不錯的趟济,就看leader了,結(jié)果leader有事咽笼,出去了顷编,不知道什么時候回來,就約當(dāng)周的下班時間過去就好剑刑,然后面試官親自把我送到了門口媳纬,跟我聊了很多,挺不錯的施掏。
四面
四面是經(jīng)理面钮惠,感覺經(jīng)理已經(jīng)不做技術(shù)了,技術(shù)基本上沒有詢問七芭,大體問了一下項(xiàng)目素挽,以及自己在項(xiàng)目中都做了一些什么,聊了聊其他的話題狸驳,就完事了预明,然后就讓我回去了, 大老遠(yuǎn)的跑過來耙箍,就談了不到半個小時撰糠,好吧,誰讓人家是百度呢辩昆,回去等hr電話吧窗慎。 過了幾天,hr聯(lián)系我談薪資待遇等卤材,又讓我跑了一趟,面試這么多家峦失,最累的一次扇丛,誰讓百度是牛*呢,一頓說尉辑,bulabula…… 感覺近幾年百度發(fā)展的不是很好帆精,一直在走下坡路,不知道是不是在憋大招,很多百度人都出來了卓练,不過百度畢竟是百度隘蝎,還是很厲害的。
阿里
夢寐以求的阿里終于找我來面試了襟企,之前不管是內(nèi)推還是網(wǎng)絡(luò)上投遞都被拒絕了嘱么,原因是我工作不到一年,沒辦法誰讓馬云爸爸太厲害顽悼,我投遞的是杭州的天貓曼振,是做虛擬現(xiàn)實(shí)的小組(剛聽到這個名字感覺和自己不太相符),這是我到面試完后蔚龙,才知道的冰评,面試官也跟我說Android上的需求可能不會很多,更多的是VR技術(shù)在Android上的應(yīng)用木羹,包含OpenGL等技術(shù)甲雅。
一面
- 詢問了我博客上寫的一些東西,從項(xiàng)目立意談起坑填,到設(shè)計(jì)抛人,再到詳細(xì)的技術(shù)實(shí)現(xiàn),可謂是面面俱到穷遂,由于自己寫的博客還是比較熟悉函匕,回答的還不錯。 2. GLSurfaceView的相關(guān)知識蚪黑,OpenGL盅惜,Shader,繪制流程忌穿。 3. 詢問當(dāng)前做的項(xiàng)目抒寂,以及到具體的實(shí)現(xiàn)和優(yōu)化。 4. 多進(jìn)程間的通訊掠剑,Binder機(jī)制屈芜。 5. 詢問看過哪些框架源碼,EventBus朴译,Volley講了一下井佑。
大概聊了一個小時左右,聊得還可以眠寿,基本上都回答上了躬翁,中間給了我很多建議,不懂的地方盯拱,也會仔細(xì)跟我講解一番盒发,其實(shí)有一半的時間都是跟我聊產(chǎn)品例嘱,為什么這個產(chǎn)品好,怎樣做才能迎合市場宁舰,然后怎么設(shè)計(jì)整個產(chǎn)品等拼卵,感覺跟我現(xiàn)在水平不是一個層次的,果然蛮艰,第二天就給我發(fā)了一封郵件腋腮,說我現(xiàn)在暫時不太合適投遞的崗位。
面試結(jié)果
除了阿里淘寶外印荔,其他的公司基本都拿到offer低葫,這段時間把華為這邊的工作都交接完,休息幾天仍律,如果有空的話回家停幾天嘿悬。
總結(jié)
自己對于互聯(lián)網(wǎng)有一些小小的見解:
隨著資本的冷卻,整個互聯(lián)網(wǎng)市場也逐漸的冷靜下來水泉。Android應(yīng)用開發(fā)從一開始能說幾個四大組件的名詞善涨,能隨便寫個監(jiān)聽事件,就能拿到高達(dá)上萬的月薪的時代了草则。歸根到底并不是工作難找了钢拧,而是Android應(yīng)用開發(fā)工程師這個職位已經(jīng)趨于正常,再也不是沒什么技術(shù)也能拿高工資的香餑餑炕横。當(dāng)然這個也不是絕對的源内,對于中高級的開發(fā)人員來說,市場還是比較缺少的份殿,尤其是知名企業(yè)對于招聘員工來說膜钓,不僅要求有過硬的技術(shù),還要求有高素質(zhì)卿嘲,好的教育背景等等颂斜。總的來說拾枣,高工資可以給你沃疮,但是前提條件是你要足夠優(yōu)秀米者,或者說讓面試官覺得你很優(yōu)秀惹盼。
其實(shí)面試過程就是一個把你自己推銷給別人的過程婆廊,對于我們(畢業(yè)不久的同學(xué)祸泪,因?yàn)槲耶厴I(yè)不到一年)來說就是要讓面試官感覺你技術(shù)好,有培養(yǎng)價值鱼喉。感慨有點(diǎn)多了昆箕,還是來點(diǎn)干貨吧辕羽,大概列舉一下每一輪面試的大概范圍和深度似扔,但是也不是絕對的吨些,還是要看具體情況。
筆試
對于社招的同學(xué)來說炒辉,基本上不需要筆試豪墅,但是也有公司是需要的,例如 今日頭條和網(wǎng)易都有筆試黔寇。筆試都是比較基礎(chǔ)的一些知識偶器,Java、Android等方面的缝裤,一般不會有網(wǎng)絡(luò)屏轰,計(jì)算機(jī)等方面的筆試,一般情況下大家都能答出來憋飞。
一霎苗、二面
近一段時間的面試經(jīng)歷來說,一榛做、二面的問題沒有什么很大的區(qū)別(公司基本上都有3面技術(shù)面唁盏,但是也有例外,我在網(wǎng)易就是2面技術(shù)面检眯。)厘擂,基本上都是一線開發(fā)人員。主要考察你是否有牢固的基礎(chǔ)知識和是否在平常開發(fā)中能熟練使用锰瘸。
是否能講解清楚你所做的項(xiàng)目刽严,以及使用到的相關(guān)知識。
Android基礎(chǔ)知識
Java基礎(chǔ)知識避凝,大概是多線程舞萄,線程安全,集合類恕曲,JVM鹏氧,類相關(guān)知識等。
Android一些源碼的閱讀
優(yōu)秀的第三方框架源碼閱讀
三佩谣、四面
一般公司都是三輪技術(shù)面把还,但是也有四輪技術(shù)面的,不過不多茸俭。很多公司基本上每一輪面試官都會記錄他所詢問的問題吊履,以便給下一輪面試官作參考,還有就是避免對同一個知識點(diǎn)多次詢問调鬓。所以到了這輪面試艇炎,基本上不會再詢問比較基礎(chǔ)的知識。
會從兩個方面考察腾窝, 廣度:比較新的技術(shù)(Rxjava缀踪,插件化等)居砖,JVM,GC驴娃,網(wǎng)絡(luò)奏候,數(shù)據(jù)庫,Android(一般不會詢問之前面試官問過的問題)唇敞。
深度:一般會通過1或2個問題來考察蔗草,例如:map接口下都有什么子類->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ì)能力旷档,基本上不多模叙,這個要看面試的崗位,因?yàn)槲疫@里面試的只是高級開發(fā)彬犯,并不是架構(gòu)向楼。
工作中的亮點(diǎn)和突出。
hr面
基本上到了這輪谐区,你就算通過面試了湖蜕。hr會詢問一些你的經(jīng)歷,最主要的還是和你商定薪資待遇宋列。在這輪昭抒,大家應(yīng)該要對自己的薪資水平有一個大體的了解,一般都是在原來的工資基礎(chǔ)上增長20%~30%的樣子炼杖,當(dāng)然灭返,如果你在面試過程中表現(xiàn)非常優(yōu)秀,也可以不受這個限制坤邪。當(dāng)然如果公司誠心要你熙含,就算你要的工資過高,hr也會委婉的告訴你艇纺,不會直接把你pass怎静。