1. 程式人生 > >2015我的校招季,阿里、搜狗、百度、蘑菇街面試總結

2015我的校招季,阿里、搜狗、百度、蘑菇街面試總結

隨著拿到蘑菇街的offer,我的校招季便算是結束了。現在閒下來,想寫篇總結下之前的校招路,紀念一下。個人水,大神請輕拍。。。

總共參加了4場面試,然後拿到一家offer,然後就沒有然後,自己太懶,沒再去找了。。。

背景:無牛逼競賽經歷,無牛逼專案,無牛逼實習,三無人員,目標JAVA開發。

阿里(1面):

阿里是校招第一家面試,各種忐忑。面試官看上去蠻凶的,先是自我介紹,然後看著簡歷問。

1:專案介紹,說說java socket,服務端如何知道客戶端發生中斷;

2:多執行緒問題,假設有n個執行緒,如何讓它們同時開始執行,不可以邊新建邊start。我說讓所有執行緒一開始都阻塞在一個物件鎖上,然後用notifyAll,面試官不滿意這個回答。

3:實習相關的問題,大量資料情況下資料庫的處理方式,我說採用的分表,然後問分表如何實現,隨意說了點,面試官依舊不滿意,然後寫SQL語句。

4:B樹如何實現,我畫了個圖,然後說了些B樹的性質,面試官讓我程式碼實現,寫了一會,寫不下去了。。。

5:演算法題:假設甲乙兩人分隔兩地,甲知道甲乙兩人間距離,乙什麼都不知道但可以打電話問甲兩人間距離,乙可以每走10分鐘打電話問甲兩人間的距離,問如何最少次數的通話使得乙走到甲那裡。

一開始被面試官氣場弄慌了,發揮非常不好。

搜狗(1面):

面試官說搜狗就一輪終面,感覺自己發揮還行,結果還是跪了。。。依舊看簡歷,問問題

1:專案介紹,許可權管理怎麼實現,session、cookie相關問題,快取問題。

2:資料庫相關,索引的實現,B樹B+樹,吸取阿里教訓,特地看過一遍,答得還行。然後問在兩個欄位建索引,不同順序的影響,結合B+樹說了一點。

3:JAVA基礎,記憶體溢位的幾種情況,分別說了棧、堆、方法區出OutOfMemoryError的情況,然後說了堆的記憶體模型:年輕代(Eden、Survivor)、年老代,然後說了幾種垃圾收集演算法(複製、標誌-整理)。

4:Linux相關,如何檢視磁碟空間佔有情況,如何檢視程序中某執行緒狀態。

5:Tomcat如何實現,說了聯結器、四種容器的實現,又問了tomcat高併發存在的問題,說了下nginx中epoll的實現。

6:演算法題:一個數組,裡面元素先從大到小排列再從小到大排列,如何最優找到最小值。

基本搜狗的問題都回答出來了,結果被刷,無奈。。。

百度(三面):

一面:

1,介紹專案,hibernate幾級快取,mybatis與hibernate的區別,你對兩個框架的理解,隨便答了些。

2,問了Spring的原始碼,ioc、aop如何實現,annotation知道多少,用過哪些annotation,水水地說了一些。然後又問為什麼用SSH不用SpringMVC,答不上來。

3,Java集合相關,List、Set、Map區別,ArrayList、HashMap如何實現,對hashcode方法有什麼理解,有準備答得還行。

4,談了些實習做的事。

5,演算法題:給你一個字串,輸出該字串的全排列(去重),寫完程式碼,和麵試官說了下思路,面試官說複雜度太高,如何優化,沒優化出來,面試官說可以優化到線性複雜度,讓我回去想。

二面:

1,介紹專案。

2,設計模式相關,說說你知道的設計模式,一一列舉,然後讓我實現介面卡模式,寫了程式碼,面試官又問,介面卡模式和中介模式區別,按照自己理解說了點。

3,介紹實習。

4,執行緒池如何實現,於是把自己寫的執行緒池說了一遍。

5,java記憶體模型,垃圾收集。

6,演算法題1:一個數組,有三個數出現超過1/4,找出這三個數,要求時間複雜度O(n),空間複雜度O(1)。這道題和麵試官討論了好久,當時有點亂,不過思路應該是對的。演算法題2:非遞迴實現二叉樹深度,寫完程式碼,面試官看了沒說什麼,然後時間差不多到了,就回去了。

三面:

1,介紹專案,介紹實習,面試官興趣不大。

2,說說網際網路發展趨勢的看法,你最常用的app,對O2O的看法等問題。

3,你最自豪的事,你和周圍同學相比有什麼優勢。

4,跟我介紹了百度的員工培訓,好像很厲害的樣子,還要修學分。。。

百度基本上把我知道的都問了個遍,等於幫我梳理了下知識,雖然沒進,但收穫很大。

蘑菇街(拿到offer):

一面:

1,介紹專案,簡歷上寫的專案問了個遍,介紹實習,實習遇到的問題等等。

2,java記憶體模型,垃圾收集,java socket相關。

3,tomcat如何實現的。

4,執行緒池如何實現的。

5,職業規劃。

二面:

二面兩個人,一人先是問了專案和實習,又問了執行緒池、tomcat、java記憶體模型。

另一人就是聊天了,你印象最深的事,聊聊經歷之類的,問面過哪些公司,因為什麼原因沒過,又問了假設好幾個offer,如何排序的。

蘑菇街是我之前挺想進的,又正好在杭州,於是拿到offer後就不再找了,最重要的還是因為懶。

推薦書籍:

深入理解作業系統,現代作業系統;

計算機網路

組合數學

大話設計模式

深入理解java虛擬機器:jvm高階特性與最佳實踐

how tomcat works

劍指offer、程式設計之美、

推薦網站:

http://hawstein.com/archive.html

http://leetcode.com/

July結構之法演算法之道

總結:

因為之前準備比較充分,筆試都能通過,成績也還不錯。但自己做的專案在面試官看來沒啥深度,沒有某方面能力很突出,這是自己的硬傷,面試官不重視你不會什麼,而是重視你會什麼,所以如果有某方面知道得比較深那是極好的(比如:網路程式設計、作業系統、資料庫、演算法等等)。