1. 程式人生 > >[Android] 記錄人生第二次跳槽的面試經歷

[Android] 記錄人生第二次跳槽的面試經歷

    在得到老闆的允許之後,這兩個周不停在折騰面試,並且基本得到了想要的結果,於上上週末正式離職,等待新的入職東家,不出意外的話應該是去愛奇藝。

    這次跳槽的主要訴求是去大廠,所以面試的公司基本都是一線網際網路公司。過程還算順利,至少比離開三星的跳槽讓人舒服的多。整理了下面試問的內容,好多也記不太清楚了,有的問題被不同面試重複提問,就只整理一份。主要如下:

小年糕:
1.手寫演算法:從一個int陣列中找出第一個不重複的數字。
2.Binder機制的原理。
3.手寫演算法:對一個先遞增,後遞減的陣列進行排序。
4.如何實現一個ProgressBar在滑動過程中即使滑動區域偏離ProgressBar View的區域,依然能夠滑動。

    這次跳槽第一家面試的公司。這一家是我前東家的競品公司,幾百人規模的創業公司,待遇也算不錯,三餐加房補。所以當場談妥,不日給了Offer。但是我面這裡主要為了進入面試狀態,而且公司規模並不符合我的訴求,所以最後當然是拒絕了。

愛奇藝:
1.ContentProvider實現的原理。
2.對同一個Service進行start和bind的混合操作,其生命週期執行的順序。
3.Android程序間通訊的方式。
4.Handler訊息傳遞的原理。
5.Handler如何引起記憶體洩露,寫出引用鏈。
6.手寫快排。
7.touch事件的傳遞流程。
8.一個引數為基本型別的方法,傳入的引數是引用還是指標?當引數為物件呢?
9.EventBus的實現原理。

    面完小年糕,當天下午就來面愛奇藝。說實話愛奇藝的面試並不算順利,可以說是一波三折了。一面的面試官問技術知識,問了很多我不擅長的技術細節,導致一面前半程一度進入尷尬。好在後半程我的回答還是很不錯的,所以大概是基於整體的考慮,一面讓我通過了(PS:不得不說,愛奇藝工作人員的顏值真的是驚人。除了剛進門看到的幾個漂亮小姐姐,一面面試官真的帥到我了)。二面是個組長一樣的角色,主要問我之前公司做的東西還有一些技術實現,聊得還是很不錯的,不過我還是優點沉浸在一面沒有答好的陰影裡,心裡也一直覺得基本涼了。二面面完後,讓我等了會,然後回來說他們的領導不在,讓我先回去吧。我心裡想,果然涼了。結果在回去的路上,就收到了愛奇藝HR的電話,說這兩面通過了,定了週五的復面(當天是週三,週四是百度的面試)。我心裡暗喜。結果週五愛奇藝的復面當頭一棒。只跟三面的總監草草聊了十分鐘大概,他就讓我等下,回來的時候問我為什麼跳槽如此頻繁,原話說了句“你這個辦不了”。我心想果然還是涼了啊,心裡也就徹底放棄了。結果過了一週多,他們的HR跟我打電話又繼續談了起來(大概是找不到更好地人選了- -),心裡這才覺得有譜了些。

百度:
1.Java class可見性的幾種修飾。
2.Java記憶體模型JMM。
3.Handler訊息傳遞的原理。
4.手寫連結串列反轉。
5.手寫演算法:從一個int陣列中找到三個數字,相加等於給定的key,輸出三個數字在陣列中的位置。
6.如何實現一個Object可以通過該物件的value而不是地址來判定相等。
7.如何實現下拉重新整理。
8.如何對一個播放器實現右滑隱藏進度條和播放按鈕。
9.代理模式與裝飾模式有什麼區別。
10.git merge和rebase的區別。
11.實現兩個執行緒,一個執行緒對公共int變數進行賦值操作,另一個執行緒在複製操作後執行指定程式碼塊。
12.手寫單例模式。

    百度是我這次跳槽所有面試的廠子裡最想去的(畢竟BAT對我來說屎都是香的- -)。面試過程非常順利。一面技術面答得很好,二面中規中距不過也不錯,三面的總監主要聊了聊技術之外的,他也對我表現出了較大的意願,所以我心裡感覺非常靠譜。不曾想面完了就沒聲音了,至今杳無音訊。中途曾經電話詢問,對方HR說在還在稽核中。後來跟愛奇藝的HR談的時候,他說百度的HC出了問題。或許是這個原因吧,我也不得而知。三面說了句玩笑話:“你一年多點,這已經再找第三家了。如果你第三家還是做了幾個月就走了,大概沒有公司敢要你了吧。”包括後來面試小米也提到了我頻繁跳槽的問題。可見大公司對頻繁跳槽確實是很忌諱的。

獵豹:
1.使用者態和核心態的區別。
2.程序和執行緒的區別。

    先吐槽下獵豹真的夠偏的,周圍感覺甚至沒有其他網際網路公司。面了兩面,一面面了快倆小時,基本的知識都涵蓋到了,答得馬馬虎虎,感覺一面的面試官不是很喜歡我。二面來了技術總監,草草聊了十幾二十分鐘,他表示想招個在底層視訊處理,程序通訊上有深入研究的工程師,顯然我不符合。

小米:
1.手寫生產者消費者模型。
2.手寫演算法:一個字串所有的字元是否全部存在於另一個字串。
3.手寫快排。
4.手寫演算法:遍歷節點帶有int值的樹,找出所有節點相加等於給定值的路徑的數目。
5.Retrofit的實現原理。
6.優化listview滑動。
7.HashMap的實現。
8.軟引用和弱引用的區別。
9.引起記憶體洩漏的方式都有哪些。

    面的MIUI閱讀部門。整體非常順利,面了整整一下午的時間。幾面面試官都很熱情,三面技術面之後,來了個主管(穿著打扮很有時尚氣質,看起來比較年輕,但是一看就是領導的樣子),簡單聊了幾句,基本決定要了,轉日HR聯絡,一週後發了Offer。如果愛奇藝沒有通過的話,我應該會去小米。

    總的來說,感覺大廠Android崗位對我這樣一年多開發經驗的菜鳥要求還是很低的,大部分公司覺得只要你Java跟Android基礎知識OK,知道一些原理機制,基本的資料結構演算法沒問題,就差不多可以了。