Android和Java web春招總結
從3月中旬開始算起,到今天5月4日。
前前後後筆試面試了數十家大大小小的公司,先從BAT開始講起
在4月中旬之前都是投的Android開發,但是在行情嚴峻的情況下轉投Java web開發
阿里巴巴##
阿里一共面了3面,2面技術1面HR,據說這個情況面試評價就是B+(HR面後已回絕)
阿里找的學長內推菜鳥,客戶端開發崗位,3-18投遞
一面(電話面) 3-29 晚上9點
感覺是簡歷面
先是問了數學建模比賽中用的算法,浪費了5分鐘時間解釋
接着問了問項目,接着就Hybrid開發和Native開發哪個更好展開了15分鐘左右的激辯(面試官說阿里現在基本都是Hybrid開發,面試官P7等級)
然後面試結束了
二面(現場面)4-3 上午10點半
面試官P8,不是Android技術,應該是架構師
最開始自我介紹,20秒
然後問了一些基礎問題
- 抽象類和接口的區別
- Java線程同步怎麼做?有哪些方法?如何停止一個線程?volatile/synchronized底層原理
- Concurrent用過沒有,原理是什麼?segment用的是lock還是synchronized?
- 進程、線程和協程分別是什麼?
- Linux知道麼?epoll和select的區別是什麼?
- 機械硬盤、固態硬盤的原理和區別?
- 數據庫用過麼?講一講平衡樹和B樹/B+樹?
- 最近在看什麼書?你這幾個項目都是學校的麼?
- 給你的建議:你應該去實習一下
中午在酒店吃了阿里訂的飯,同桌的都是上午就面完HR的大佬們
三面(現場HR) 下午2點
問題很常規
先是自我介紹,接着是HR提問環節
- 爲什麼想做軟件?
- 最有成就感和挫敗感的事情?
- 有沒有佩服的人?
- 怎麼追上差距?
- 讀不讀博?爲什麼不讀?
- 爲什麼來杭州?爲什麼不去上海北京?
- 我提問:後續還有面試麼?——沒有了(這個時候感覺涼涼)
然後走的時候送了我一個阿里的飛機
然後晚上在準備做網易遊戲筆試的前20分鐘看到了官網已回絕……
據說是客戶端已經招滿了……
騰訊
先走的提前批,到了二面掛了
然後走了網申,只走了一面,然後變到了HR面,目前仍處於HR面試中
提前批一面 3-29 下午3點半
很欣慰的是一個Android面試官來面試我
先是自我介紹,然後是提問環節
很常規的Android面試題目
- 接口和抽象類的區別
- Handler講一下
- EventBus源碼看過麼,講一下
- OkHttp源碼看過麼,講一下
- 四種引用講一下
- 內存泄漏遇到過麼,因爲什麼,怎麼解決
- 內存優化的問題,SparseArray用過麼,原理是什麼
- 如何把字符串轉換爲整形
過了一會,約了4-2號下午一點二面(關鍵點:這一天是提前批最後一天!!!)
提前批二面 4-2 下午1點
題外話:29號面試之後,公衆號變成複試狀態,2號上午一查又變成了初試
這個二面是我春招過程中印象最深刻的面試,因爲它深深暴露出了我的不足
問題:
- C++的可執行文件和Java的class文件有什麼區別???????
- 講一下C++編譯過程???????
- C++虛函數和純虛函數講一下???????
- Dalvik虛擬機和JVM有什麼區別?寄存器是什麼東西?
- 講一下網絡模型?
- socket實現?
- 打開網頁全過程?兩臺手機通過路由器上網,同時瀏覽qq網站,過程是什麼樣子的?
- 概率題
- 好了,再見
至此沒有下文,直到4-23網申批次(狀態一直是初試)
網申一面 4-23 上午10點半
- 講一講項目?
- Handler原理?
- Android幾種存儲機制?SharedPreference的apply和commit區別?
- EventBus原理和優缺點?講一下EventBus裏面的線程模型?
- OkHttp和Retrofit原理、區別講一下?
- Java裏有哪些設計模式?講一下
- 線程間通信?
- JVM內存模型?
- GC原理、如何解決循環引用?四種引用?
- 後續有面試會通知
百度
投了簡歷沒有任何後續,別人都收到了筆試通知
(投的上海,移動端只收5人,估計已經收滿了,周圍投後臺、算法的都收到了筆試通知)
接下來是第二梯隊TMD
今日頭條
頭條先是做了筆試題目,5道算法題,簡單粗暴(3-24)
A了3道就可以進面試
郵件約了3-31日下午2點面試,頭條效率很高,一天完成所有面試
在牛客網的遠程面試
一面
一面面試官很年輕,問的問題也都比較簡單
- 講一下項目?
- 網絡部分怎麼實現的?
- 如果讓你實現一個圖片加載器,你怎麼實現?
- Activity的四種啓動模式,singleTask有哪些注意的?
- 緩存算法有哪些?除了LRU還有什麼?
- 很基礎的Java問題
- 最後手寫代碼:判斷一顆二叉樹是不是平衡二叉樹(太緊張寫了很久,還不是最優的……面試官說別緊張,你之前表現得很好)
二面
一面過了5分鐘後,HR打電話說通過了,準備二面
二面面試官也很年輕,會指出你的問題所在
- 介紹項目
- Handler機制,內存泄漏怎麼辦?匿名的Handler且沒有Message會泄漏麼?
- EventBus原理,sticky怎麼實現的?
- Fragment生命週期?和Activity相互關係?
- A的onStop和B的onResume哪個先執行?(A啓動B時)
- 設計模式?單例模式,手寫DCL
- 如何找到數組中出現次數超過一半的數?幾種方法?手寫快排實現?
- 還有一些常規問題
三面
二面過後20分鐘,HR打了電話說通過了面試,準備三面
然後等了1小時,三面面試官來了
中年人,應該是leader
- 上來就敲了幾行代碼,讓我分析這些引用和對象都是分配在JVM的哪些部分?
- 線程間通信?寫一下wait和notify怎麼用?
- 線程池實現原理
- 觸摸事件,消息傳遞?如何把一個觸摸事件傳遞給另一個組件(同級)?
- surfaceview講一下?surfaceview和一個普通view誰在上面?爲什麼?怎麼去除surfaceview?有什麼區別?(這裏崩了,明明不會還硬答)
- 生命週期onCreate中調用finish,會執行哪幾個生命週期方法?
- 再見
過了5分鐘,HR打電話說面試通過,1-2周內官網會更新和通知,然後等了17天,官網顯示已結束,涼涼,頭條的備胎池真TM深
美團
3-22後筆試之後再無消息,官網也沒顯示未通過
滴滴
內推了之後再無消息
接下來就是剩餘公司
CVTE
這是我面試的第一家公司,拿來試試水,攢攢經驗
最開始筆試,然後過了之後,通知電話面試
一面
問的問題十分基礎,送分題,一度以爲穩過
結果晚上顯示未通過,震驚
酷家樂
直接在官網投遞簡歷,半個月之後收到面試電話,這是第二家面試公司
一面
時間有點久遠,都是一些基礎問題,很簡單,十拿九穩
不一會收到HR電話,通知過了,準備二面
二面
這個是我前期印象深刻的面試
最開始問了一些基礎知識,十拿九穩
接下來,場面變得不可控,在我記憶中,他總共問了大概15道算法題目(fuck)
有一些是劍指offer上的原題,但還有一些沒見過(或者offer上的變種題)
最後問了智力題,25匹馬的題目,我第一次見到這個題目,所以答錯了(在被問了15道算法題目的情況下,腦袋早就懵了……)
然後收到了感謝信,沒有HR的電話
京東
筆試通過後,要去上海面試,而且不報銷,不一天流程走完,申請電話面試。
晚上未通過
網易
筆試未通過,想不通。
選擇題沒問題(畢竟刷了很多題),簡答題沒問題,算法A了2道,還是未通過。
別人一道沒A都有面試機會。。。
拼多多
直接發到HR郵箱的簡歷,然後回覆“我們沒有客戶端這個崗位哦,歡迎關注秋招崗位”
58同城
4-1號筆試之後再也沒有消息,然後過了20多天讓去現場面試,鴿了
虎牙
筆試鴿了,和女朋友吃飯看電影去了
網易遊戲
考試前20分鐘看到阿里已回絕,放棄考試
招商銀行信用卡中心
筆試通過之後,4-15南京現場面試
只有一面,兩個面試官穿着西裝問問題
- 講一個做的最好的項目
- 有什麼興趣愛好?喜歡哪個球隊?爲什麼喜歡巴西和國米?
- 你覺得PWA,Hybrid和Native開發哪個更好?
- 能實習麼?能多久?
面試玄學,然後收到了offer。因爲一些原因,轉成了秋招直通車。直通秋招終面。
華爲南研所
筆試題,三道LeetCode原題,都做過
4-18早上9點南研所面試
一面
面試官長得很像我的學弟
- 講一下項目
- 爲什麼考計算機二級Java和三級網絡?爲什麼不去考數據庫?
- 講一下TCP/IP?
- 恭喜你通過了……
然後在等待室坐了一會等待二面
二面
上了三樓,綜合面是一個女面試官(屋子裏唯一一個女性)
- 自我介紹?
- 我們不收Android?????????
- 講一下未來規劃?
- 回去等通知吧
5-1之後發了offer調研,根據調研結果進行錄用,應該會有offer
小米
Android開發,筆試之後無消息
愛奇藝
Android開發,筆試過後無消息
依圖科技
Android開發,牛客網走的內推
一面 4-16 下午4點
電話面試
- 先講了一下項目?
- 既然你提到了Handler,講一下原理吧?
- 做個算法題目吧,發了一個石墨文檔,將一個字符串分割成所有正確的ip地址?
- 概率題:52張牌,先抽17張,下一張是第一個a的概率;第二個a的概率?
過了10多天,約了5-3 下午現場二面以及以後
但是因爲要開題報告,5-1號郵件回覆HR不去了,結果5-3下午面試官還打電話問我到哪了……尷尬
攜程
3-29筆試
一面 現場 4-19 下午3點
面試官是前端面試官(吐槽一下,Android面試官真少)
- 講一下項目
- 講一下四大組件
- 自動裝箱和拆箱
- GC相關的基礎問題
- 會後臺麼?講一下SpringMVC?
- 講一下HTTP和HTTPS區別?
- 手寫冒泡……………………………………
- 聊人生,你很好。想做後臺可以,隨便轉。
4-28號收到HR電話,做測評
5-4號收到offer
去哪兒
4-2 下午3點筆試
4-23號現場面試(吐槽:和攜程在一個酒店……攜程前腳剛走,去哪兒就來了)
到了現場,繼續吐槽:和攜程一比較差距好大……攜程面試的時候,整個酒店大堂起碼有50多個人……但是去哪兒網面試的時候……尷尬,就5個人……十分冷清
一面 4-23 上午9點
面試官做Java的
- 上來就手寫算法,LeetCode第一題,我說我會做,你換一個,他說你就寫就行了,我看看你的代碼風格。結果寫了不是最優的算法,用了O(nlgn),然後讓我寫O(n)的,沒想出來,提示用Java的數據結構,想到了map;但是此時機智的我趕緊說用這個還有O(n)的空間複雜度……面試官冷着臉說,我沒讓你考慮空間……
- 接着就是開始就是數據庫的常見面試題,什麼索引是什麼?怎麼用?索引什麼時候失效?爲什麼?索引的底層實現?
- 場景題:一臺數據庫服務器,中間層4臺查詢服務器,最外層100臺用戶服務器,此時加到200臺,每次查詢數據需要處理大量併發問題,如果是你,由幾種解決辦法?Redis講講?
- 一些常規Java面試題(底層實現)
然後通知去樓下等待面試
各位看官可能已經看到我騰訊10:30要面試,所以我下樓之後和門口的兄弟們說老闆找我,可不可以下午再來……得到了准許之後趕緊回學校準備騰訊電話面試
HR面 現場 4-23 下午2點
HR老哥微胖,很和藹
- 自我介紹一番
- 遇到困難怎麼解決?
- 想做Android還是web?爲什麼?
- 實習時間?
- 講了實習待遇,口頭offer
5-4號收到offer(吐槽:在攜程發了offer後2小時發了offer)
至此春招結束
總結:不要做Android!投了一個半月Android拿了0offer;搞了一週web拿了3個offer……除非你對移動端有一百分的熱情!(我反正做了2年移動端,framework層源碼也都看過了解,還是找不到實習,計算機基礎、數據結構、算法都沒問題的情況下也很難,因爲收的人實在是越來越少了,而且在JS一統天下的情況下,純native移動端開發的路會越來越窄)
5-7更新
剛剛收到了騰訊的實習offer,移動端開發
Android大法好
今日頭條的官網狀態又變成了面試中,估計之前要求太高人沒招滿或者大佬們拒掉了頭條
5-24更新
前幾天小米打電話要面試,我說已經簽了別的公司,不用面試了
再之前華爲發offer,拒了