1. 程式人生 > >2016秋招面經(蘑菇街+BT+網易杭研+CVTE+唯品會)

2016秋招面經(蘑菇街+BT+網易杭研+CVTE+唯品會)

2016 屆秋招面經

蘑菇街 +BT+ 網易杭研 +CVTE+ 唯品會

         CS 本科生,大三寒假確定方向, Android 學習時間 1 月至 9 月,無程式設計功底,無演算法競賽經歷,無一線網際網路實習經歷,無國家級獎學金。

         希望這篇面經能給有同樣起點或者同樣經歷的同學,帶來幫助。

面試內容(崗位均為 Android 研發):

一、面試時間:

CVTE 7.28-8.28 ;

網易杭研 8.10-9.30 ;

騰訊校招 9.16&9.18 ;

唯品會校招 9.16 ;

百度校招 9.18-25 ;

蘑菇街 9.30&10.1 ;

騰訊 10.19-10.23;

二、面試方式:

CVTE

網易杭研

騰訊

唯品會

百度

蘑菇街

騰訊

一面

電話

電話

現場

現場

現場

電話

電話

二面

電話

視訊

現場( X )

現場

現場

電話

電話

三面

電話

電話

現場

現場

電話

電話

四面

現場

null

null

null

null

三、過程題目和技術點:(藍色為交流環節我問他的問題,前後順序按面試時間

CVTE :

一面:

1.       自我介紹

2.       專案點為什麼要用 view 不用 fragment ?同樣 fragment 可以解決快取(用了 view ,並且設了 map 作為快取,為了模擬 activity 棧重製了新的棧來實現相同的回退功能,需要處理連續點選和多次點選的問題,還需要解決連續點 view ,快取增大而 oom )

3.       用了什麼設計模式?為什麼要這麼用?(舉例了觀察者 + 工廠)

4.       談一下 Collection 包: hashmap 底層實現,用了什麼方法解決 hash 衝突(基於 jdk 版本),具體是如何實現( jdk1.5 連結串列頭插還是尾插),為什麼不安全?如何變得安全( concurrent 包下集合類), concurrentHashmap 實現原理是?

5.       Executor 框架說說你的理解?

6.       結束一條 Thread 有什麼方法? interrupt 底層實現有看過嗎?執行緒的狀態是怎麼樣的?如果給你實現會怎麼樣做?

7.       Io 和 nio 有沒有了解?

8.       現在需要在四大元件中傳資料?如何傳,方法有哪些(需要自己再具體說什麼情況)?

9.       快取演算法除了 lru 還認識哪種?

10.   Java 中有記憶體洩露嗎?是怎麼樣的情景?為什麼不用迴圈計數?

11.   ANR 產生原因?怎麼定位?

12.   ContextImpl 的原始碼使用的設計模式?為什麼你認為其中有外觀?

13.  評價一下我的表現?有什麼技術點需要補充?

二面:

1.       上次一面的時間是什麼時候了?(半個月前)

2.       做的最深的專案?解決了什麼問題?

3.       情景題,在一個 app 中,只有在一張 activity ,所有功能業務邏輯在裡面實現,現在報 ANR ,你會怎麼做?(程式碼層面:耗時操作( UI 、網路、資料庫),工具層面: trace 和 crashHandle )

4.       不停在 new 一個很大陣列,初始化它,然後又把 reference 設 null ,這樣子手機會不會卡?(這個問題還沒很深研究,當時答了記憶體抖動 +stop the world )

5.       Jvm 自動記憶體管理、如何實現物件的自我救贖?

6.       Android 系統啟動流程?

7.       有沒有看過業界 APK 反編譯原始碼?

8.       平時看什麼書?

9.      評價一下我,技術團隊有用到什麼開源框架?有沒有自己放出開源?

三面 HR :

1.       有點起了我老底的味道,我還以為是來查水錶。

四面(現場,這是唯一一次有 3 個面試官來面,其中一個是一面的面試官):

1.       描述專案,當時是用了什麼架構?還認識哪些架構?如何改造?

2.       當時為什麼要用 Observer

3.       obverser , uml 類圖 + 程式碼實現,原生 jdk 中觀察者模式有哪些缺陷?

4.       還有用了哪些設計模式?(工廠)

5.       有見過其他的設計模式嗎?(當時說了一個責任鏈和重說一面的 contextimple )

6.       實現一個連結串列的插入( 4 分鐘計時)

7.       判斷連結串列有環

8.       單例模式 DCL , violate 起什麼作用?為什麼要 sync .class 而不是 this ?( 3 分鐘計時)

網易杭研:

一面:

1.       自我介紹

2.       Android 中 ClassLoader 和 java 中有什麼關係和區別?

3.       熟不熟 jvm ,說一下 Jvm 的自動記憶體管理?

4.       語言基礎, String 類可以被繼承嗎?為什麼?

5.       Final 能修飾什麼?(當時我說 class 、 field 、 method ,他說還有嗎?然後又叫我不要在意,後來回想起,應該是問到我在引數裡面要不要用 final ,接下來是因為匿名內部類)

6.       Java 中有記憶體洩露嗎?(先說本質,再結合 handler+ 匿名內部類)當時如何分析的?

7.       描述下 Aidl ?覺得 aidl 有什麼缺陷(這裡在這個問題上回答有欠缺)

8.      評價一下我,如果順利進網易,需要往技術棧加什麼點儘快投入業務?

二面:

1.       用過什麼開源,舉一個例子?( volley )

2.       Activity 生命週期?情景:現在在一張 act1 點了新的 act2 ,週期如何?

3.       Act 的 launchMode ,有沒有結合專案用過(自己的程式鎖和微信的 PC 端登陸對比,不過我現在又發現,應該大約估計可能是動態載入的一個缺陷,如果有找到相關資訊,請務必跟我說。具體問題就是,當在 PC 端登入時, Android 終端的微信會跳出,即使 wechat 的 task 不是在 fore ,當按下確認,返回的是 wechat ,而不是自己先前的 app )

4.       View 的繪製原理,有沒有用 canvas 自己畫過 ui ?

5.       以後想做 Android 什麼方向?(中介軟體 +SDK )

6.       怎麼看待前端和後端?

7.       如果學前端會如何學?

8.       優缺點?興趣?

9.       想不想來杭州?

10.  評價一下我?往技術棧加什麼?

三面 HR :常規問題( 10 分鐘,這個男 hr 是最爽快的)

1.  為什麼想來網易?

2.  有投其他公司嗎?

3.  網易最吸引你的是什麼?

4.  想來杭州嗎?

5. 評價一下我?

騰訊(被掛)

一面:

1.       自我介紹

2.       專案描述

3.       如何保證資金流安全?(這裡沒答好,直接把我掛了,先前並沒有考慮過這個問題,面了這麼多次也沒有被問這個點,導致雪崩)

4.       Oom 是如何解決?

5.       除了軟引用還知道什麼引用?

6.       Jvm 自動記憶體管理(什麼時候觸發 gc )?

7.       有什麼要補充:(跟他講了動態載入還有一個底層原始碼)

8.      根據面試過程,有什麼建議給我?(我當時就覺得很有可能就掛了,所以就問建議)

二面(一面之後當晚我查到被掛,心態沒有調整好,但是 2 天后又把我復活了,然後又掛了):

1.  自我介紹

2.  你是怎麼準備面試的?

3.  做過什麼專案?專案思路是?

4.  平時有什麼興趣?

5.  自己寫的工具類和 uil 相比,如何?

6.  後續就是講了他自己對移動端發展的看法,受教很多。

7. 現在有個機會可以對剛畢業的自己說些話,你會跟他說什麼?

騰訊 SNG:

一面:

1.       自我介紹

2.       動態載入主要問題

3.       外掛化

4.       Assetmanager 獲取資源原理和資源獲取原理

5.       專案 Oom 異常解決方案 + 使用者體驗優化方案

6.       Touch 傳遞機制 +listview 滑動衝突

7.       Volley 底層實現

8.       為什麼不能用 volley 請求大資料

9.      後續流程如何走?

二面:

1.       自我介紹

2.       android 學習時間

3.       為什麼不考研

4.       Smali 語句學習情況 + 反編譯

5.       如何捕獲插屏廣告?如果廣告是嵌入在應用主流程內如何處理(只講瞭如何捕獲 launch 下的 activity ,巢狀在主流程邏輯內的想不到,問了提示也沒回答)

6.       Jvm 的自動記憶體管理

7.       Jvm 中軟、虛引用的區別

8.       Java nio 的認識

9.       Tcp 三次握手, tcp 與 udp 的區別

10.   Volley 底層實現 + 設計模式理解

11.   Imageloader 快取策略

12.  後續流程如何走?

13.  sng 目前在android 端遇到什麼問題?(他回答是機型適配問題)

14.  對我的建議是?

HR 面:

1.       之前參加校招嗎?

2.       這個月又如何準備?

3.       談談優勢?

4.       騰訊哪裡吸引你?

5.      以後會在什麼部門?是不是一二面面試官帶我?

唯品會:

一面:

1.       專案如何解決 oom ?響應速度是怎麼優化?電量消耗如何優化?

2.       描述一下 Aidl 和 android ipc ?( binder 機制沒跟他講得很深)

3.       螢幕適配使用的方案?有沒有輔助的工具幫助?( hyviewer )

4.       如何分析記憶體洩露?(程式碼 + 工具 traceview+mat )

5.       那 ANR 呢?(我忘記了 trace )

6.       View 樹繪製?如何優化佈局?

7.       事件傳遞原理?

8.       uil 的框架如何設計?有沒有用過 glide ?(結合了 fresco 的分析)

9.       Volley 和 okhttp 底層實現(也講了 okio ),為什麼說 okhttp 高效?

10.   Listview 的優化(同一佈局,左為 bm ,右為 text )?

11.   Apk 瘦身可以關注什麼點?(這裡忘記了說 so 庫,然而他也不會)

12.  評價一下我

二面:

1.       這裡的專案的描述的 xml ,你專案不是 native 的?

2.       有沒有接觸 hybrid 和 webapp ?怎麼看待?

3.       有用到什麼設計模式嗎?開源框架呢?

4.       HotFix 和 Xposed 的一些小應用(沒有深入,只是講了動態載入原理和需要解決的問題,也說了 dynamicloadApk 和 multi 分包還有 Xposed 中的 hook )

5.       以後想如何發展?

6.      唯品會會如何培養新人?是不是由你帶我?目前唯品會用到什麼技術點跟我技術棧相關?

三面 HR ( 50+ 年紀面試官,素質差,不尊重面試者,具體可以搜知乎):

1.       對公司的看法?

2.       為什麼主頁不設搜尋欄?

百度:

一面:

1.  自我介紹

2.  講一下動態載入技術點?

3.  對目前移動圈的看法?

4.  學 android 的開始時間?

5.  適配優化螢幕適配接觸到什麼方法?

6.  Binder 機制(只深入到 framework )

7.  View 樹繪製 + 事件分發

8.  海量字串 ( 他給我的樣例如下: ABCDE,ACD,BCDF,EF) ,如何插入資料庫使冗餘度最低? Trie 樹 + 不知道什麼遍歷,第一次見,資料庫存的是 3 個欄位,字母,該字母第一次遍歷的序號,該字母第二次遍歷的序號。可以做到時間複雜度 O ( N ),至今都沒想出來……如果有人看過類似的題請務必告訴我。)

二面:

1.       不用除號實現除法(一開始需要考慮小數,後來面試官說降低難度先整數,然後優化大數的情況,確認了兩次思路)

2.       Contextimpl 原始碼,幾種 context 的區別

3.       如何實現通訊? Binder 機制(我只將了 aidl 和 framework 層面,面試官把 /dev/binder 也講了,受教,被人教做大人,後來吹比發現他是做 C 驅動開發)

4.       一個數組,找出只重複一次的元素,並且返回下標是最小的。時間複雜度要求 O ( N ) +O ( 1 )(一開始只想到了 O ( N ) +O ( N ),後來問了提示,可以實現到 O ( N ) +O ( 1 ),但是空間複雜度上去了,然後他給出最優解)。

三面:

1.       高校教育和培訓班看法?

2.       C++ 和 java 的區別?後來我轉到面向過程和麵向物件,結合 uil

3.       Ios 有接觸過嗎?學習成本問題嗎?

4.       Android 專案簡單描述非技術角度?(動態載入)動態載入的優點,面向開發者和麵向用戶角度?其中我答到了 65535 方法會爆,然後他說小夥子太年輕, naive !

5.       以後有什麼規劃?

6.       高階工程師所需責任?

7.       瞭解 android 什麼新技術?( hybrid ,這裡答得不好,應該往移動端統一角度來答)

8.       N 根繩子,質量不均勻,並且燃燒速度不均,但是每一條燒 1h ,現在需要測量出 1H+15min 。( cracking 改題)

9.       優缺點

10.   興趣

11.   最後給我看了一下他對 65535 方法數的研究,我也是醉了。

12.  個人點評?負責哪個部門?是不是以後你帶我?

13.  百度 200 O2O 你覺得前景如何?會對你帶的部門產品線有什麼影響?

14.  如何看待今年網際網路的資本寒冬?

蘑菇街:

一面:

1 .   自我介紹

2 .   在專案中為什麼要用動態載入?最大的問題是什麼?怎麼解決資源管理問題(這裡我一直以為 AssetManager 是服務,然後又被面試官教做大人,簡單來說就是裝逼然後失敗了)

3 .   Binder 機制說一下(由 application 到 framework 到 kernel 基本講了一下要點,但是電面實在是很影響表述沒有畫圖,他最後也聽得很蛋疼)

4 .   Android 原始碼看了多少 G ?說一下(舉了 contextimpl )

5 .   螢幕適配接觸到什麼方法?

6 .   java 記憶體洩露是怎麼樣的?(本質 +handler 例子)

7 .   Handler 機制?

8 .   情景題,把 handler 設 static ,裡面需要對一個 view 更新,會不會記憶體洩露?(可達性分析)

9 .   UI 接觸得多嗎?有沒有用過 canvas 畫過圖?

10.   事件分發?如果有一個 interr ,會……(這裡我聽不是很清楚,電話訊號,然後我就把整個事件分發原理說了一下,然後他說我講錯,我也是醉)

11. 個人評價?會不會有下一面?(問這個因為覺得裝逼失敗,非常有可能被刷,他告訴我可能一週後,結果二面就馬上國慶1 號面)

二面:

1.       自我介紹

2.       學 android 多久?

3.       怎麼學習?

4.       專案裡面遇到什麼難題,選一個講一下?(動態載入,還有一面被教人教做大人的過程)

5.       平時有什麼興趣?

6.       Volley 底層實現?( okhttp 沒問)

7.       自己寫的圖片載入工具類談一下?(結合 uil 談了一下)

8.       有沒有了解新技術?瞭解到哪些?講一下?( hybrid+react+ 個人看法)

9.       動態載入還遇到什麼困難?(結合了 dexposed 和 其他一些熱補丁聊了一下)

10.  個人點評

11.  蘑菇街目前 android團隊架構

12.  目前有哪些 android技術難題所遇到過?

13.  目前用了哪些開源?我還需要接觸哪些?( hotpatch + xposed ,個人認為主要還是受手淘影響,估計內部框架也是比較類似)

14.  怎麼培訓新人,以後是不是你來帶我?

三面:(個人感覺是真的專業 HR )

1.       自己介紹面向非技術

2.       談一下優缺點,為什麼有這個優點?如何體現?

3.       為什麼想來蘑菇街?

4.       目前手頭有多少 offer ?薪資?

5.       蘑菇街跟百度網易對比最吸引你?地點杭州有沒有問題?

6.      蘑菇街 offer會不會調崗?

7.      怎麼帶新人? mentor制?

應對策略:

         非技術準備:

1 、廣度容易量化,深度難以量化;廣度:寫過爬蟲之類,專案裡面有用到某個技術;深度,針對面試官或者公司整體來進行評估難以量化。如 “ 熟悉 TCP/IP 協議簇 ” 、 “ 熟悉 JVM” ,“熟悉”一詞難以針對各公司統一衡量,有的是 GC 演算法的原理,有的公司卻需要手寫 GC 演算法的虛擬碼實現

2 、本科生和研究生,要求一樣;沒有優劣勢。

3 、電話面試有一定的影響,一是普通話流利清晰程度,第二就是不能畫圖說明。

         4 、技術( Android 研發)角度和自身經歷,技術難度:明星創業公司 >BAT+360> 一線網際網路 >= 一線工業公司 > 創業公司(沒有面過華為中興和國企)。

         5 、內推,不等於走後門,不會降低要求,只是公司提前搶人。(公司內高級別的員工內推就除外,學院也有這個資源)。

         6 、筆試分數是淘汰工具,面基礎水平還有面試官的評價,才是擇優,對後面的面試影響會比較大

         7 、分配好體力和精力,堅持鍛鍊

         8 、校園學生組織經歷不重要(面向技術)

         技術準備:

1 、 CS 基礎:網路,作業系統,資料庫,編譯原理, C/C++

2 、演算法和資料結構,需要刷題

3 、語言基礎(擅長的語言的特性,例如 java 的 io ,併發,集合 );

4 、 Android 機制體系(其他研發類崗位我覺得也是相同);

5 、競賽準備( 演算法比賽裡的獎牌, ACM , Topcoder   ,藍橋杯, 阿里天池,程式設計之美,還有幾個演算法網站的排名, leetcode )和實習經歷(一線公司實習經驗)

所以在作業系統上面我並沒有去聽課,逃了一個學期,從 5 月份刷足一個月的題,水平比沒刷的時候是高了很多對比自己,刷題可以正反饋給語言基礎。至於 android ,看書 + 看原始碼,關注高質量的團隊部落格和文章是很有必要。特別是需要準備幾個特別肉的點,讓他問不倒你,滿足他的技術深度要求。我在我的筆記裡面準備了大概 80-100 個知識點,每面可能只會問 10-20 個,佔不到 30% ,所以要儘可能準備最肉的,這種最肉的最好找拉開水平的,例如新技術點,例如系統設計,設計模式之類。對於一些新技術點,很容易會拉開別人的距離,我估計,接下來移動端的發展,最熱的可能就是react native for android ,因為這個中介軟體意義非凡,還有關於系統安全防範上也是值得去挖。在技術準備後面會有附帶的個人整理出來的“面試題提綱”。

面試看法:

明星級創業公司注重廣度深度理論和實戰,內推階段簡歷要求高,蘑菇街在內推簡歷關就把我刷了,豌豆莢,美團,猿題庫, glow ,今日頭條也有同樣的情況,沒有獎牌或者 BAT 級別實習經驗容易被刷。校招階段可能是因為運氣好,在深度可能達到要求,然而又沒怎麼問廣度。唯一需要斟酌的問題是這種型別的創業公司,發展前景如何,潛力如何,值不值得放棄去 bat 鍍金 的機會等等

百度面試中,設了 2 面的基礎面,一面是考理論知識,二面是演算法編碼能力,我也是運氣好,第一面除了 Android 系統之外, CS 基礎沒有問我,演算法那題面試官師兄說在那天並沒有一個人答出,我是當天最後一個面試;而二面面試官師兄也給我放鬆了要求;總的來說,百度對基礎要求是我面過的比較全和深,很多面經也是有這個看法。對於演算法題,是逃不過的,程式碼面試一定要過關,只是我運氣好,百度只是寫了一次程式碼;寫出來之後被問了幾個優化的問題,一時間沒有思路,但是還是主動問他要了提示,個人覺得演算法題是不能迴避,在後面感受中再說一下。三面主要考察的是非技術方向,除了新的技術點還比較在意規劃還有視野上面,這面面完出來感覺可以更好,在非技術層面上語言組織或者見解角度可以更深入;至於騰訊一面,目前回想,其實應該要把重點放回 CS 基礎和演算法上面 ,因為根據目前瞭解,騰訊對移動端, java 和 android 總體不會問很多,可能與內部開發有關。當時應該用 CS 基礎和演算法過關,而不是 android 和 java 基礎,這樣子可以避免專案經驗被問死,然後他覺得你整體很魚這個問題。而騰訊二面,雖則被複活,最後還是掛了,但是這面是我收穫最大的一面,現在回頭想了一下,那面貌似是我在面試他,他跟我 55 開的講話,如果早點面上這位總監……然而並沒有如果,在這面主要是“交流”(雖然都是他在講,我在聽)對移動端的看法,對android 技術框架的發展 還有對系統設計的一些經驗。(一開始以為過了,但還是掛了)。

網易面試中,一面主要是語言基礎和 android 機制基礎,最深的就是二面面試官老師,那種引導是跟 cvte 二面面試官一樣,在我沒什麼思路的情況會給我充足的提示,不過一般我都是會跟他確認是不是要問我某個知識點至於唯品會,當天騰訊一面結束,下午是面唯品會,對於面試流程是比較好的, 一面到底,不用等幾天;在一面主要是問簡歷上的問題,但是感覺對深度並沒有過多要求,簡歷上的問題他幾乎問了 50% ,但是深度都是由自己發揮。而二面的話,當時面試官可能有事,就問了我幾個目前比較熱的技術點,熱補丁和動態載入,問完就結束。至於 HR 面,知乎上有評價,可以去搜搜。

CVTE ,秋招第一間面試公司,可能因為簡歷問題, 我發過去的簡歷是比較久遠,所以面試官一直問我 java 基礎和 android 基礎,並沒有很深入問其他。這也是簡歷做得好不好的一個影響,問題也是比較淺,體現不了深度,但是對於二面面試官,還是比較好的,在引導面試者上面很能體現他的能力。

創業公司裡,我面了一次科韻那邊的一家公司,華南資訊,當時我投的是實習生,不是正式員工,只問了一個問題:說一下攔截黑名單怎麼實現?當時我講了反射還有 android 版本的問題,需要對程式碼實現有相容處理。然後他說可以了。我說可以了?他說可以看出深度和態度,當時我就醉了。然後問了一下他對我簡歷有什麼改進。也非常感謝他對我提了意見,後來有了一次簡歷的優化。

面試技巧 (個人常用):

1 、由點及面,發散式回答(結合問題本質 || 具體專案經驗 || 問題解決 || 問題設計 || 問題影響);例子:“ jvm 垃圾回收演算法是什麼?”, “ Java 垃圾收集,你能不能談談? ” 關於這個系列的問題, jvm 自動記憶體管理: 首先是觸發時間(新生代、老年代結構, minor gc/full gc 的觸發條件, gc 的演算法   ) -> 面向的物件(可達性分析搜尋不到的物件,需要考慮自我救贖的物件) -> 執行了什麼動作( gc 收集器的動作,並行和序列,例如有 stop the world )。缺點:冗餘(兩位面試官曾經提到這個問題)

2 、在明確好強項後,遇到不會的技術問題,偷換概念或者主動拿提示。例子: C 和 java 的區別,轉換面向物件和麵向過程;程式碼面試可以問他拿提示,不能輕易放棄。好的面試官,往往都是看你會什麼,不好的面試官,專門抓你不會來的問。所以很經常在面試裡面都會很有發揮的餘地,都是自己來主導,除非是像百度二面這種生擼演算法題。

3 、揣摩他要考察目的,準備亮點。例子:談一下優缺點和比別人的優勢,什麼興趣的這樣的點,非技術問題。引用一個例子,一個產品類的面試者,被問興趣,面試官並不是想要你說我興趣是 xx 球,他很有可能是想你給個閃光點他,那個面試者說 “ 我沒事的時候喜歡坐一下公交,看一下公交路線,有哪些重疊的地方,如何優化…… ” 。

校招感受 (主觀):

       寒假到 3 月,找了以前的同學聊了一下,自己走去在騰訊的表哥要求當場面(虐)了一下,看到同級的大牛找到實習,種種的刺激,還有很多負面的能量、情緒,需要好好控制,然後轉到自己的驅動力。

       3-6 月,經歷阿里和騰訊春招之後,明白那種差距,至於這種差距怎麼明白,一方面自己找了面經,一方面自己直接偷聽了 2 個面試者的面試,當時那種刺激更大。回來就開始反思,要如何達到那個高度或者彌補差距。回想在這 4 個月裡面,一方面要放棄很多東西,去補別人 3 年 2 年的差距,會非常累,三點一線。

       直到 7 、 8 月,阿里開始內推,我發了簡歷過去,簡歷被刷,當時那種打擊也不是一兩句能說出來,當時更多的是那種對自己的技術的懷疑,所以就重新大改簡歷,重新再補幾個肉的知識點。然後再投幾家公司再試,而且面對學校內同屆的同學,越來越多找到實習,心裡知道是自己是不能急,但是會慌,那種心態也是很難表達。

       後來遇上阿里縮招,知乎上, Q 群裡也是炸了,幾個面試官都有一致的觀點,如果這個系列訊息再遲大概半個月或者 3 個星期放出來,一方面業界公司可能不會跟風縮招,二來他們可能就搶不到那批實習生,給其他人有更多機會,今年的網際網路就業形勢可能會更好一點。

       網易和 cvte 當時是主要是為了騰訊做準備,但當時面完騰訊的時候,知道自己掛了,那種不服、不甘、鬱悶,那種半年來的努力被人否定的感覺,並不好受,特別是對比其他人,都是問一些較為基礎而又在 Android 技術範疇內的問題,哪怕是演算法題,也是在能力範圍內,當時就心態出現失衡,心裡會想為什麼他有這麼好的機會,而自己並沒有,以及想起種種的對比和刺激,當時情緒消極和失落。所以後面的百度是消極筆試,但是又運氣好過了,面著面著不知不覺到了二面,就開始患得患失,最後面完百度,在廣州區裡的網際網路公司例如多玩,都是抱著和同學去的態度,那段時間竟然心態調整不太好,從一個極端又走到另一個極端。

直到面了蘑菇街,又更加明白自己技術棧非常不足,在這幾天看到一個清華研究生的面經,才知道自己最肉的技術點,只是別人的起步,看到他拿的都是 sp ,自己都是批發價,當然面經下面的評論才是更精彩, FLAG 大神,人外有人,當看完那篇面經,雖然之前已經是被打擊,被虐心了很多次,但是那個衝擊,那個打擊依然是很大。有位老師說,“很多人會遇到自己的天花板,天花板是早晚遇到”,百度三面總監問我, 2 年內, 你有沒有信心挖完 android ,我當時說有,其實是沒底,看完那篇面經,更沒底,那我怎麼調整,我會如何面對我以後的天花板?所以就補充完這份面經。因為我大一大二一開始並不是很喜歡程式設計,甚至我一開始就感覺大學就是用來玩,真正的興趣驅動和我這種有點變了質的驅動感覺會有不同,很有可能以後的天花板也不同。 對於想交流各方向技術或者關於發展的,也請多點聯絡聚聚,最後祝各位成為大牛!

技術交流 Q 群: 275943576

YK

2015 年 10 月

附一:半年啃過的 書單 (都是以成長曲線最高,學習成本最小來挑選,付出的代價就是書的價格,這些書並不便宜,綠色為推薦,但個人沒看,還有很多非常好的書,請務必聯絡我),另外個人筆記整理後會再發:

Java 基礎:

深入理解 java 虛擬機器 — 周志明

Java 程式設計思想

Effective java

Core java

Java 網路程式設計—Elliotte Rusty Harold

Java 併發程式設計實戰

CS 基礎:

TCP/IP 協議簇

圖解 Http

TCP/IP 詳解卷卷一

深入理解計算機作業系統

鳥哥的 LINUX私房菜基礎篇

C Primer Plus

C++ Primer

C 語言程式設計語言

C 專家程式設計

C 與指標

C++ 程式設計語言

Effective C++ :改善程式與設計的55 個具體做法

深度探索 C++物件模型

C++ 標準庫(第2 版)

虎書(前 2 章,可以應付學院內編譯原理考試)、龍書、鯨書

演算法和資料結構:

演算法 -Robert Sedgewick

劍指 offer

程式設計之美

Cracking the coding interview

程式設計師程式碼面試指南 — 左程雲

Leetcode 這個是OJ ,刷了 10 題後來沒刷

演算法導論(數學水平太差看不懂)

Android :

第一行程式碼 Android (入門 )

Android Pro 4

Android 開發藝術探索 — 任玉剛

Android 群英傳 — 徐宜生

深入理解 Android 卷一 — 鄧凡平 ( 看到 binder 機制前 )

深入理解 Android 核心設計思想 — 林學森(看到 binder 機制前)

大話移動 APP 測試, Android 應用測試指南 — 陳曄

Android 核心情景剖析 羅昇陽

Android 安全技術揭祕和防範 周聖韜

Android 應用效能優化 --Herve Guigot

設計模式:

Head first 設計模式

模式 - 工廠化實現及擴充套件 — 王翔

建議:學習語言之後,就用他實現一個網路爬蟲或者用來刷一下題,對語言基礎會有很深的理解,例如 Python 和 Java 。

附二:個人整理的 面試提綱 (實際上理論基礎面試和程式碼面試,是並沒有提綱可的,但是這些是我爬過很多面經,當時的一套知識點用來逐一突破,現在又補充了新的內容上去)

J2SE :

1 、集合 (這個部分的內容是頻率高的內容,個人覺得是因為結合了資料結構,還可以結合併發安全考。其實要通關這部分,最好就是把 JDK 標準類的原始碼實現一次,據說今年成都騰訊面,一位面試者寫原始碼 hashmap ,順利錄取):

ArrayList LinkedList Vector 的底層實現和區別

HashMap 和 HashTable 的底層實現和區別,兩者和 ConcurrentHashMap 的區別。

HashMap 的 hashcode 的作用?什麼時候需要重寫?如何解決雜湊衝突?查詢的時候流程是如何?

Arraylist 和 HashMap 如何擴容?負載因子有什麼作用?如何保證讀寫程序安全?

TreeMap 、 HashMap 、 LinkedHashMap 的底層實現區別。

Collection 包結構的組成, Map Set 等內部介面的特點與用法。

2 、併發 ( Executor 框架和多執行緒基礎):

Thread 與 Runable 如何實現多執行緒

執行緒同步的方法有什麼;鎖, synchronized 塊,訊號量等

鎖的等級:方法鎖、物件鎖、類鎖

生產者消費者模式的幾種實現,阻塞佇列實現, sync 關鍵字實現, lock 實現等

ThreadLocal 的設計理念與作用, ThreadPool 用法與優勢(這裡在 Android SDK 原生的 AsyncTask 底層也有使用)

執行緒池的底層實現和工作原理(建議寫一個雛形簡版原始碼實現)

幾個重要的執行緒 api , interrupt , wait , sleep , stop 等等

3 、 IO ( IO,NIO ,目前 okio 已經被整合 Android 包)

IO 框架主要用到什麼設計模式

NIO 包有哪些結構?分別起到的作用?

NIO 針對什麼情景會比 IO 有更好的優化?

OKIO 底層實現

4 、其他的 java 語言特性

反射機制

String 類內部實現,能否改變 String 物件內容,比較經典的 String 字面量筆試題

Object 有哪些公用方法?

try catch  塊,try 裡有 return finally也有 return ,如何執行這型別的筆試題

Exception Error 的區別

泛型的優缺點

另外就是關注最新版本 jdk的新特性,例如 Lambda表示式

5 JVM

自動記憶體管理機制, GC演算法,執行時資料區結構,可達性分析工作原理,如何分配物件記憶體

類載入機制,反射機制,雙親委派機制,類載入器的種類

Jvm 記憶體模型,先行發生原則,violate 關鍵字作用

CS 基礎:

1 OS

程序和執行緒

死鎖的必要條件,怎麼處理死鎖。

段儲存,頁儲存,段頁儲存的區別。

程序的幾種狀態和轉換

Android 下的IPC 幾種通訊方式

邏輯地址、實體地址的區別

程序排程演算法

2 、網路基礎(主要是TCP HTTP

OSI TCP/IP 各層的結構與功能,協議和作用。

TCP UDP 的區別。

TCP 報文結構。

TCP 的三次握手與四次揮手過程,各個狀態名稱與含義,TIMEWAIT 的作用。TCP 的三次握手過程?為什麼會採用三次握手,若採用二次握手可以嗎?

TCP 擁塞控制。

TCP 滑動視窗與回退N 針協議。

Http 的報文結構。

Http 的常見狀態碼含義。

Http request 的幾種型別

Http1.1 Http1.0 的區別

Http 怎麼處理長連線。

Cookie Session 的作用於原理

socket 通訊的幾個關鍵函式

IP 地址分類

路由器與交換機區別

瞭解交換機、路由器、閘道器的概念,並知道各自的用途

資料結構和演算法:

劍指 offer

程式設計之美

Cracking

程式設計師程式碼面試指南

特別是這四本書上的重複題

Android

1 UI 層面 (對 UI 不擅長):

FrameLayout LinearLayout AbsoluteLayout RelativeLayout TableLayout

View 樹繪製流程

下拉重新整理實現原理

三種動畫的區別

2 、基礎和底層

四大元件相關:

Fragment 的生命週期和activity 如何的一個關係

Acitivty LaunchMode 與特點

Service 的兩種啟動方法,有什麼區別

目前能否保證 service不被殺死

廣播的兩種動態註冊和靜態註冊有什麼區別。

Intent 的使用方法,可以傳遞哪些資料型別。

ContentProvider 使用方法

機制:

Handler 機制

AsyncTask 相關問題,3.0 前後的 bug ,如何實現併發?底層實現原理?

Android 的三級快取如何實現

Binder IPC 機制, aidl

觸控事件分發機制

Activity 啟動流程以及介面展示過程

Android 系統啟動流程

Android 中的MVC MVP MVVM

涉及動態載入技術點相關

3 、開源框架(回想學習開源的經歷,建議先用開源組一個 app 出來,先做一個開源的搬運工,再深入理解)

例如: ButterKnife + Okio + OkHttp + Volley + Gson fastjson + glide Picasso fresco + android-common eventbus + dbflow greenDAO + LeakCanary 。一整套的 View 註解、網路請求、圖片載入、工具類、資料儲存、效能檢測等等的基礎框架。UI 方面, Support Lib + Design Lib + 各種開源 View 控制元件。再關注某些著名開發者的框架,然後選取學習。

需要掌握的程度:

1、框架功能和作用

2、 工作流程圖

3、總體設計和原理

4、底層實現細節或 Uml類圖

同樣建議造輪子


相關推薦

2016(蘑菇+BT++CVTE+)

2016 屆秋招面經 蘑菇街 +BT+ 網易杭研 +CVTE+ 唯品會          CS 本科生,大三寒假確定方向, Android 學習時間 1 月至 9 月,無程式設計功底,無演算法競賽經歷,無一線網際網路實習經歷,無國家級獎學金。          希望這篇面經能給有同樣起點或者同樣經歷的同

2019 提前批蘑菇一面(帶答案)

今天給大家分享一下我的秋招提前批面試經歷,目前三面技術面已過,hr 面也面過了,正在等訊息。由於內容太多,先分享一面的面經。 自我介紹一下吧 面試官您好,我是 xxx 大學軟體工程的一名大三學生,從大一開始學習前端,產生了對程式設計的興趣,大二開始接觸 Java,大二下學期學了 ssm,springboot

阿裏巴巴2018之前端崗(1~5)

區別 為什麽 是個 ots 印象 未來 對比 有一個 strong 作者:faremax鏈接:https://www.nowcoder.com/discuss/35805來源:牛客網 五面都面完了,結果還沒有出來,今早給大家貢獻幹貨吧。我沒寫問題的答案,有什麽問題可以留言區

Java開發 2019 整理

從7月底開始,到10月中旬獲得offer 進入面試流程的包括位元組跳動、招銀科技、百度、Keep、華為、花旗、京東、有贊、去哪兒、拼多多、okcoin,收到的offer有華為、招銀、有贊、去哪兒,其他有一面涼、二面涼以及HR面涼等等。 面試中遇到的問題整理如下,僅供參考 計算機網路

Java程式設計師大合集(BAT美團小米華為中興等)

Cvte提前批 阿里內推 便利蜂內推 小米內推 金山wps內推 多益網路 拼多多學霸批 搜狗校招 塗鴉移動 中國電信it研發中心 中興 華為 蘇寧內推

攜程2019

時間:20180912    11:30 地點:武漢玉豐國際酒店 一面(40mins) 1、簡單的自我介紹 2、說一說selenium的理解。 3、說一說Spring的理解(IOC和AOP)IOC怎麼就反轉了。 4、String和StringBulider區別,S

自身經驗--Redis的(一)

今天去一家公司面試,由於在簡歷裡面有寫到專案中使用到了Redis,所以面試官就抓著這個問題問了好多知識點,我每個問題都有回答到,但是自己是覺得有的答案不太完整,所以面試結束,針對問題,整理一份文件。 主要分成三個部分: 第一是面試問到的問題。 第二個是根據面試過

蒐集總結

2018.7.23 下面是個人在秋招過程中搜集的一些面經,分享出來如下: —————————————————————————————————————————————————————— 1.程序和執行緒的區別?(什麼樣資源在兩個執行緒共享) ——程序是資源分配的最小單位,執行緒是c

【計算機視覺演算法崗】“吐血”整理:2019

//2018/09/28 當初開始面試時就想著,以後我一定要寫一篇面經,現在是來還願的時候了。 首先,嗯,非常感謝牛客平臺,提供了很多資訊啊。而且去年11月曾報名左神的課程,非常感謝左神啊!課程相當值啊,你見過用1分鐘吃完飯接著講課的老師嗎!你見過自己加班加點也要把所有內容都講完

2018——C++後端

某不知名二本財經院校秋招辛酸史。。。。 9.17(16:20) 先鋒商泰一面:(C++開發) 第一次面試,緊張到窒息…. 1、 自我介紹 (說自己是非科班出身,面試官問:你覺得你作為一個分科班出身的,需要具備哪些知識才能彌補這種劣勢) 2、

Java大合集

這個國慶,大家過的怎麼樣啊,是到處去玩,還是繼續勤勤懇懇地學習呢。反正我沒有出去玩啦,還在忙秋招的小夥伴也加把勁啦。之前發過很多秋招面經,一直沒有做一個整理,今天就做一個整理吧。 阿里面經   崗位是研發工程師,直接找螞蟻金服的大佬進行內推。 我參與了阿里巴

校園小結(國企無領導小組討論)

一.前言   來公司實習了半個多月了,閒暇之餘總結下我校招秋招的面試經歷,希望能對各位還在校園沒找到工作的小夥伴有些幫助。本人理工男,計算機軟體工程專業,學校是一所211,實力還算可以,來學校招聘的都是些還不錯的企業,有校友創業公司也有些比較知名的企業,比如上海用友、福建星網銳捷還有工商銀行之類的比較大型的

-資料分析/資料研發篇(阿里/騰訊//行信用卡等 更新中)

個人簡介:本碩雙985,本科專業應用數學,碩士專業cs。有一段滴滴資料運營實習,碩士期間做過兩個工業類的專案(異常檢測/關聯分析),發了兩篇水論文(二作)。 為什麼投資料分析:本來第一意向是演算法。無奈今年演算法崗實在太熱門,美團筆試受挫後覺得選資料分析或許

2019記錄帖

2019秋招面經-主網際網路篇 阿里巴巴C++研發崗電話面掛經 西門子-實習面經 網易筆試題 1、阿里巴巴C++研發崗 阿里真的是突如其來的電話面試啊,還沒咋準備就開始了…… 先挖個坑,有空補一下。 STL瞭解多少,具體實現方式 準備不充分,只答出了

及我的結束了

秋招結束了,也沒有什麼經驗總結其實。 整個秋招面試的公司有:360,海康威視,喜馬拉雅,歡聚時代,百度,騰訊 面過的公司裡除了百度一面掛之外其他差不多都拿到了,最後毫無疑問肯定是去騰訊得了。 感覺自己走了狗屎運。 整理了一下這幾家公司我的面經以供大家參考: (雙

我的Java大合集

這個國慶,大家過的怎麼樣啊,是到處去玩 ,還是繼續勤勤懇懇地學習呢 。反正我沒有出去玩啦,還在忙秋招的小夥伴也加把勁啦。之前發過很多秋招面經,一直沒有做一個整理,今天就做一個整理吧。 阿里面經   阿里中介軟體研發面經 螞蟻金服研發面經 崗位是研發工程師,直接找螞蟻金服的大佬進行內推。

C++ 阿裏,遊戲,騰訊

linu 最大的 整理 lock 規劃 為什麽 是什麽 最小 快的 作者:Simon_鏈接:https://www.nowcoder.com/discuss/23512?type=2&order=0&pos=12&page=2來源:牛客網 2017

2019屆Java實習生,第五(offer)

補招內推加面基礎語法。。。。。。。。。。。。。spring bean spring的原生介面 注入機制,載入機制 IOCAOP 動態代理 springmvc底層處理請求順序,bean生命週期,autow

2019屆面試回顧(一)——互娛&多益網路

關於秋招 來到秋招,本以為有了春招的經歷,秋招能夠更加得心應手,但真正面下來之後,發現無論是面試形式還是面試難度上,與春招相比都有了一些不同,自己也有些猝不及防。除此之外,由於學校放假比較晚,對於一些面試開始得非常早的公司來說,整個準備時間就顯得非常短了,而且同時又要兼顧在

大資料試題

一面: hdfs讀寫過程 MR原理 講專案 balabala... 差不多40幾分鐘吧 二面: 講專案,專案一個點一個點的問。 主要講的是PV、UV的統計、其中設計到rowkey衝突怎麼處理。 接著講專案balabala 差不多40多分鐘吧 HR面(一個男