好久沒有寫博客了,這篇文章本應該在國慶期間發表的,十月份一直要寫開題報告,拖到現在。這篇文章記錄的是2016年8月中旬至9月下旬期間博主參加的校招,記錄下來給需要的人看。另外,在準備校招前期,博主將校招復習筆記整理成了電子檔,下一篇文章我會把它發佈出來,希望能幫助到大家。
注意:本人記憶力確實不太好,很多問題都忘記了,只能挑記住的記錄下來,希望大家能諒解
1. 華爲提前批(跪在性格測試)
2016-08-19 一面:
- 介紹我的項目,針對我的項目中的點詢問是如何實現的
- Activity生命週期?爲什麼Activity要這麼設計?這樣設計有什麼好處?
- Android與iOS運行機制上有哪些不同?
- 爲什麼Android用起來沒有iOS流暢?爲了讓Android系統更流暢,應該從哪些方面做好?
- 如何讓Service不被殺死?
- Android系統分層?Library層起什麼作用?
- 如果一個應用要升級需要注意哪些方面?(我回答服務端api要兼容,如果只是小bug就通過補丁方式,但是貌似面試官不滿意,就引導我說數據方面的,我才知道原來是想要我說本地數據的兼容)
- 問我有什麼要問他的?
- 還有其他的一些問題,記不太清了….
2016-08-19 二面:
二面是一箇中年男人,一開始很嚴肅,聊了幾句後它就笑嘻嘻了。
- 首先叫我介紹自己
- 本科在哪讀的(普通二本)
- 家裏有多少人,是農村的還是城市的,家裏生活水平怎麼樣?
- 有沒有女朋友、女朋友是哪裏人、女朋友有沒有工作?
- 爲什麼不留武漢(我簡歷填杭州),不留武漢你女朋友同意嗎?
- 選一個你收穫最大的項目來談談?(後面就是針對我的項目一直聊~)
二面大概30分鐘左右,後面說我的性格測試沒通過,讓我重新再做一次。然而,第二次性格測試還是沒通過,最終我還是因爲性格測試沒通過的原因,與華爲無緣。。。。
2. 騰訊內推TST(已拿到offer)
2016-08-19 一面:
1.自我介紹
2.跟我提簡歷裏面的項目,如何實現的?具體原理?如果出現XXX情況,會不會出現XXX問題?
3.Android 消息機制,Looper、消息隊列等
4.Android事件分發機制
5.自定義過View嗎?回答有自定義過,然後談了下(普通View)onMeasure、onDraw。針對ViewGroup談了下onLayout,然後還有就是需要注意onDraw不要做過於耗時的任務,防止卡頓。
6.Java中的多線程:Thread、Runnable
7.Java中的同步問題?Lock、Synchronized
8.類的加載過程?五步
9.TCP與UDP區別
10.10萬個整數中找出排序後的前10個數(Top N 問題),及其對應算法複雜度
11.10萬個整數中,每個整數取值[0,99],找出排序後的中間位置的數(中位數)
12.堆排序的算法複雜度
13.面試官說,大概就這些了。緊接着想要掛電話的樣子,我趕緊說,我可以問您幾個問題嗎?面試官說當然可以。我就問了以我當前的水平能否符合您們的要求?面試官說我覺得你還不錯。緊接着問了一下大概等多久才能進入下一場面試,面試官說會盡快安排,可能會再週末。
2016-09-03 上午 現場二面
面試官非常nice,整個過程很挺順利。
1.針對項目詢問
2.TCP擁塞機制
3.手寫代碼,針對Top k問題
4.如何做到多個線程訪問同一個數組,既要線程安全,同時提高讀寫效率(我是通過分段鎖的思想,說了一下自己的想法),後面還讓我手寫代碼實現。
5.還有很多內容,忘記了。。。
2016-09-03 下午 現場三面
三面面試官據說是總監,反正我是被打壓的擡不起頭。不得不說,總監級的人物技術確實牛逼。首先看了我的簡歷,然後說簡歷裏面的項目經驗太簡單了。。。。
1.什麼是內存對齊?
2.C++內存分爲幾種類型?(我對C++不熟,就說了JVM中的內存分類)
3.如何壓縮一篇文章?
4.java類加載過程?(這個我很熟,裏面滔滔不絕,然而,得到的迴應是:背的倒是挺熟)
5.Java那些類是final?(除了String,我真的不知道還有哪些),只回答了String,面試官說,還有呢?(回答不出來了。。。)後面查了下,其實Math類也是final,面試官說日期類有很多,但是我回頭查了下,還是沒查到哪個日期類是final。
6.快結束時,面試官說,就到這裏吧,你很幸運,我沒有讓你現場手寫代碼。因爲我當時覺得這次面試面的很差,我就回答,我願意嘗試手寫代碼。然後面試官出了2道題:如何逆轉字符串?如何實現“ I am Student”轉爲“Student am I”?兩道題都很簡單,劍指offer裏面都有。我一聽到這個問題心裏就呵呵一笑了,立馬說出如何實現。然後,面試官說行,就到這了。
雖然炮轟式的提問,但是我的記憶力確實很差。。。目前只記得這些。。。後面想到再補充。二面完了之後,我覺得直接都掛了,因爲好多跟C++相關問題我都回答不出來(畢竟我只搞Java 、Android),在面試官面前,自己確實很菜。
2016-09-03 下午 現場HR面
1.家在哪?
2.本科是哪個學校?
3.有沒有親戚在騰訊?
4.有沒有女朋友?
5.你來深圳了,女朋友怎麼辦?
6.你實習過嗎?回答實驗室不允許我們實習,然後HR說,那相比那些實習過的人,你的優勢是什麼?
7.你有什麼問題問我嗎?
3. 2016-08-25 奇虎360
2016-08-25,今天下午2:00開始,到4:30,一共面了3面:一面、二面、HR面。不得不說,360辦事效率真的很高,覺得你OK,就立馬給你安排下一面。360整體感覺比較偏向詢問項目中的問題,所以有好的項目經驗比較重要。
一面:
其實之前有整理一面的問題,但是是寫在紙上,然後那張紙被我一不小心當垃圾扔了。。。。所以現在回想的起來的問題很少。。。
- 手寫ListView(可能是考我會不會想到ViewHolder)
記性真的很差。。。想不起來了。。。總之,一面一般問的比較基礎,大部分人都能通過。
二面:
- 你知道B樹嗎?B樹用到哪些場景?
- 用過JNI嗎?
- 生活中有沒有遇到一些事情,你通過程序來解決的?
- 針對項目問了很多問題….
- 其他很多問題忘記了。。。。
HR面:
先是自我介紹。大致介紹了一些後,居然發現不知道該說什麼了。有點尷尬!HR姐姐就一直看着我。。。實在看不下去了,就說,那你介紹下你做的項目吧~。
- 大致說一下做過的項目
- 本科學校是哪裏?我回答桂電,數學專業!然後HR姐姐就說,你學數學的跟我們學計算機的槍飯碗啊!我回答第一臺計算機是數學家發明的,所以不能說我是搶計算機飯碗~
- 爲什麼要來北京?(其實我並不想去北京,只是360沒其他地方可選~)
- 你瞭解360的產品嗎?用過哪些產品?
- 你覺得360靠什麼盈利?
- 假設一個場景,你正在做一個app,deadline快到了,但是產品設計提出新的需求你會怎麼辦?新功能到底加不加?(加的話可能有新BUG,不加的會如何跟產品設計解釋?)
- 其他問題忘記了。。。。
後面得到通知,成功稱爲360的備胎。。。。
2016-09-20 下午 網易
吐個槽,原本安排5:20開始面的,想着那麼晚,提前過去看看能不能提前面試。從2:30就趕過去,結果直到6點才輪到我。硬是坐了一下午!
一面
- 如何讓Service不被Kill
- Volley框架原理?
- 除了Volley你還了解哪些框架?
- 點擊事件機制?
- 簡單的算法:打印100以內的所有質數(PS:沒有比這個更簡單的面試手寫算法題了)
- 熱補丁技術?
- 插件化技術?
- 如何判斷對象的生死?
- 垃圾回收算法?
- 新生代,老年代?
- http與https區別?
- 加密算法你學過哪些?
- hashcode與equals區別?
- HashMap裏面的hash映射?如何實現根據Key的hashcode找到下標?HashMap做了哪些優化?
二面
二面的面試官基本沒有準備問題,都是拿着簡歷對着問,所以不同人的簡歷可能問的差別很大。
- 把你所知道的設計模式說出來
- C語言中的編譯和鏈接過程?
- Java NIO是啥?
- 進程和線程區別?
- 其他問題基本是圍繞項目問的。
HR面
- 總結3個你的性格缺點
- 如何看待阿里搶月餅事件?如果是你你也會去寫插件搶嗎?
- 如何看待百度貼吧事件?
- 家庭情況?
- 本科是什麼專業?
- 爲什麼當初會考研?爲什麼會選擇考武漢大學?
- 有女朋友嗎? 女朋友是做什麼的?
- 最讓你有成就感的事情是什麼?
- 後面還有其他公司的面試嗎?
- 現在手上有其他公司的offer嗎?
網易最後還是跪了,主要是二面沒面好。二面面試官從我剛進門就沒有給好臉色,聊不到一塊去,後面我回答問題時,面試官沒有正眼看過我。所以找工作這件事,運氣也很重要,遇到聊得來的面試官,一切都好辦。
========================================
以下爲11月9日更新,記得比較含糊
========================================
4. 滴滴(已拿offer)
一面
一開始一面面試官沒正眼看我一眼,瞬間我就覺得,糟了,這肯定要跪了!剛開始問了幾個簡單的問題,我回答了後,他依然沒有重視我。然後他就讓我說說binder機制,我把《簡單明瞭,徹底地理解Binder》 這篇文章跟面試官說了一遍,瞬間面試官眼睛亮了!他突然好激動,他說,今天我面了一天了,你是我面的最好的。然後立馬加了我微信。後面面試官說,二面你不用面了,直接去綜面。
二面
因爲一面面試官說二面免了,所以直接去綜面了。
綜面
綜面面試官沒有問android相關問題,就是一直問算法、考算法。算法題目我忘記了,大致記得就是一個數組,只有2個數是相同的,其他各個數是不同的,找出這個相同的數,並且要求時間複雜度和空間複雜度都是O(n)。還有其他算法題,記不住了。
5. 樂視(已拿offer)
一面:
相隔時間比較久,記憶的內容也不多,樂視一面面的挺久,大概1個小時。跟面試官討論的主要問題是Binder跨進程問題,其實也就是我把我寫的《簡單明瞭,徹底地理解Binder》 這篇文章跟面試官說了一遍。然後再一起討論設計模式什麼的,當然了,面試內容也不僅僅這點,大部分問題跟前面重複,具體我也想不起來了。
二面
二面面試官是負責樂視的基於webkit瀏覽器開發。能記下的內容不多,我記得的問題有:你覺得瀏覽器難點在那?然後還有就是問了一下項目相關的問題。最後給了個智力題:在平面上畫線,最多能將屏幕劃分爲多少個區域,比如一條直線能將平面分爲2個區域,2條直線最多分爲4個區域,那麼n條直線最多分爲多少區域?
HR面
- 拿了哪些公司offer了呀?
- 爲什麼選擇樂視呀?
- 去北京離你家那麼遠,你能接受嗎?
- 你都拿到其他公司offer了,怎麼還來面樂視呢?
- 其他問題。。。
樂視後面還給我加面了,專門打電話讓我去加面。加面的面試官居然不知道我是加面的,以爲我是來二面,我特意提醒了下後,他才知道。後面簡單聊了下後,就讓我回去了。很遺憾,雖然加面了,我最終拿到的樂視薪資依然是白菜價。
6. 塗鴉(已拿offer)
塗鴉是全程算法題。
一面:
- 如何判斷二維座標系中的圓和三角形是否有重疊區域?
- 給一個二維數組,告訴你哪些座標位置是不能行走的,計算從左上到右下有多少種走法。
- 其他問題記不住。。。。我已經盡力了。。。。
二面:
二面也就幾個算法題,不說了。記不住。
寫在最後
雖然好多問題我都忘記了,但是其實各個公司面試官問的android基礎問題就那些。二面基本上都是問項目,所以建議大家一定要準備好項目,要不然二面就很難通過。另外有些二面面試官喜歡問算法,問智力題。大部分二面面試官不會問android基礎。最後,我後面會把我準備校招期間的所有筆記公開給大家,敬請期待!