2017實習【Java研發】面經

標籤: 實習 面經 Java研發 阿里、騰訊、華爲python

找2017暑假實習,經歷過被騰訊拒絕的無奈,也有拿到阿里和華爲offer的喜悅,找實習過程也有一段時間了,在此把以前的面試知識點和經歷作個小總結,以鞭策本身更加努力前進。ios

1 騰訊

騰訊投的是研發崗位,原來就知道對於Java系的人想去騰訊搞研發估計難度太大,但此次本身是切切實實體會到了。3月初,請教了在騰訊工做的師兄把簡歷改了又改,由N頁濃縮爲一頁的精華,師兄幫忙內推以後過了很久都沒消息,最後發現簡歷評級過低(B級),沒過,實在是很憂傷。聽說簡歷評級在A以上纔有機會面試,自認爲我的雖然不是大神級別的水平但能力仍是有的,簡歷不至於被殘忍丟掉吧。其餘同窗是Java系的也有簡歷順利過的,後面一對比,人家除了搞Java外,還對PHP、python、C++等非Java系語言有項目開發經驗,我就純Java,有可能有這方面的因素。固然也有可能確實是簡歷沒有寫好。就在放棄騰訊之際,騰訊社交網絡質量部卻給我發了郵件表示接收了個人簡歷。經瞭解這是騰訊的一個測試部門,雖然不會去可是抱着學習長經驗的心態,因而就有了接下來的測試和麪試。面試

社交網絡質量部專項筆試:

題目1:有用戶反饋手機QQ的圖片傳輸的速度比微信慢。分析緣由並提交實驗數據和最終報告。

題目2:有用戶反饋手機QQ的耗電比微信多。分析緣由並提交實驗數據和最終報告。

筆試二選一,三天內完成。

    表示以前沒有過相似的抓包分析經驗,可是直覺告訴我能夠去幹。而後選擇了題目一,手機系統是ios的,抓包工具用了fiddler和Wireshark。借同窗的手機平板,用iPad和iphone開了幾個微信小號和QQ小號分別作抓包分析,也讓同窗在移動網和室內wifi不一樣環境作了相應的測試。最後獲得的結果是微信mmtls和QQ https所使用的安全協議直接或間接致使的。提交報告後獲得的迴應是確實有這方面的緣由。筆試經過後等了2周接到面試。


騰訊面試都是現場面試。

一面:

1)問:自我介紹。

2)問:印象最深的項目。談談你的貢獻和解決的技術難點。
這裏面由項目展開,一連串的追問。好比他會問你項目哪裏最難,怎麼解決的,執行效率如何,有沒有出現什麼問題,怎麼樣處理,如何維護和升級等等。須要對我的作的項目比較熟悉,平時對項目多思考才能夠答得好這些問題。我對本身作過的項目仍是比較熟悉的,因此回答的感受良好。這裏聊了十多分鐘。

3)問:你以前作過的社交網絡質量部專項筆試【有用戶反饋手機QQ的圖片傳輸的速度比微信慢】,你當時是怎麼思考和行動的?
這裏就開始聊以前作的筆試,回答方向主要集中在怎麼設定實驗環境、怎麼實現抓包及分析哪些關鍵內容、最後如何得出結論等等。最後面試官說這個題目實際上是有必定難度的,我提交的報告的結論確實是有那方面緣由(心裏嘚瑟了一下,起碼答案是經過了^^)。

4)問:現場寫出使用遞歸逆序一個整數的代碼。
面試官給了我紙和筆,詢問了一些邊界問題和具體要求後就開寫了。這裏須要注意的是面試現場寫代碼,首先本身不要慌張,要沉住氣相信本身,其實題目不是很難的,冷靜下來通常能夠寫出來。這也說明咱們平時有機會仍是要在紙上寫寫代碼,不至於那麼陌生。

5)問了一道智力題。
內心是千萬只草泥馬在奔騰的,面試的時候問智力題真是要坑人啊。這種問題要是不會就很難本身想出來的,不過能夠換個角度思考問題,面試官人家不必定非要你回答出來,說不定更多的是考察你對問題的思考方式和過程,有什麼疑惑的地方和麪試官交流,你能夠引導讓他給你問題範圍,甚至是給出答案的提示等等。總之智力題之類的,除非平時刷中題目,否則仍是好好思考不知道結果時怎麼回答才能讓面試官印象也不錯吧。

6)問:你有什麼問題想要問的嗎?
問本身想知道的問題,要表現得真誠、積極、有上進心、有求知慾。最後在面試前針對性的準備一些合適的問題。

一面面了四十多分鐘。多是測試崗位的緣由,並無問不少具體技術的問題。


二面:

     第三天收到二面的通知,很不幸在前一天吃錯東西搞得上吐下瀉,還發燒了。頂着疲憊的身軀去二面,感受是不太妙的,可是心想此次面試原本就是抱着學習長經驗的態度來的,我的也不但願最後選擇測試崗位,內心就平衡了一些。

1)問:請做一下自我介紹。

2)問:說出對Java內存分配的機制。

3)問:JVM垃圾回收的主要算法。

4)問:收穫最大的項目是哪一個,爲何?
結合自身項目談吧。

5)問:對TCP/IP的理解。是否有相關的項目經歷?
這裏主要想考察你對計算機網絡的相關協議的熟悉程度。平時要針對複習。

6)問:你對將來的規劃是什麼樣的?
從理想、學習、就業、家庭、生活等各個方面說本身的規劃和行動。

7)問:你有什麼想問個人嗎?
這種問題須要提早作些功課,準備一下。

    因爲身體緣由,我的二面面試的時候狀態不是很好。面試過程面試官讓人以爲很舒服,這可能和騰訊的企業文化有關吧。臨走以前面試官說會有人聯繫我進行最後一輪終面,可是最後卻沒有收到面試的通知,而是收到【崗位不合適】信息,可能面試官看出了個人心思最後改變了主意吧。有點小遺憾,不過原本也不打算去,經驗已經賺到了。

2 阿里

阿里的面試都是電話面試,先後經歷了4次面試,每次面試時間長度都在40至50分鐘左右,從3月底到4月底也通過了一個月纔出結果。算法

一面

1)問:請做一下自我介紹。
答:結合本身教育經歷、項目、技能簡要介紹,重點突出本身的特色和特長。

2)問:請說說什麼是事務?
答:我回答時突出事物原子性操做,要麼都作,要麼撤銷回滾都不作。
問:詳細介紹事務的ACID特性。
答:分別介紹原子性、一致性、隔離性和持續性(持久性)四大特性內容。

3)問:對樂觀鎖和悲觀鎖的理解。
答:當時對這一部份內容不是很瞭解,可是大概說出了本身的理解。悲觀鎖是在併發環境中操做的時候,假設每一次操做都會有併發進行,每次執行都須要加鎖解決潛在的多線程併發問題,在執行的時候比較「悲觀」,認爲操做都會遇到併發問題。相反樂觀鎖在執行的時候就比較「樂觀」,認爲操做時不會或不多遇到併發問題,因此只在最後提交操做的時候檢查和處理併發問題。
問:介紹它們是如何實現的。
答:我回答的時候舉了數據庫樂觀鎖和悲觀鎖的例子。悲觀鎖經過加上表鎖、行鎖、讀鎖和寫鎖等實現,樂觀鎖經過版本控制(使用時間戳或遞增的整數)等手段實現該機制。

4)介紹Java的集合,list、set和map的區別。
答:從它們的做用、用法、底層的數據結構、初始化容量和擴容規則、被繼承的父類、是否多線程安全等角度去回答。

5)問:HashMap和HashTable的區別。
答:這裏和回答集合類的思路是相似的。
問:HashMap底層是由什麼數據結構實現的?
答:使用哈希表實現,用鏈地址法處理衝突碰撞......
問:那麼HashMap如何實現具體的底層put操做和get操做,請詳細介紹。
答:HashMap內部使用Entity對象存儲鍵值對,先說put操做......
問:好,那HashMap是線程安全的嗎?
答:非線程安全的。
問:那你如何實現HashMap的線程安全?
答:使用Collections集合包裝類的靜態方法synchronizedHashMap包裝,實現hashMap的線程安全......
問:該方法實現的HashMap安全線程執行效率如何?
答:因爲使用synchronize關鍵字實現同步,在多併發環境執行線程必須持有對象鎖等才能執行同步代碼,在大量併發時效率不高......
問:有沒有執行效率更好的辦法?
答:使用concurrentHashMap實現同步map,效率會更高。
問:好,說說看concurrentHashMap的實現機制,它爲何會效率更高?
答:concurrentHashMap使用鎖分段技術實現同步機制,在併發時使用的鎖粒度會更小,能夠處理更大量的併發數......
hashMap這塊追問了很久,幸虧因此這部份內容還算比較瞭解,答得還算過得去。因此若是還有什麼不會的,趕忙要熟知才行,最好是邊看源碼邊體會其中的奧妙之處。

6)問:Java如何實現類加載?
答:根據類加載器的類別、做用以及類查找和加載等方面回答。

7)問:看你也作了很多項目,說說對你印象最深的一個。
答:結合自身項目回答,突出本身在其中的角色和起到的做用,本身的什麼方法解決了什麼問題,性能和效率怎麼樣,最後本身學到了什麼,之後能夠優化和升級的方向等。

8)二叉搜索樹的查找時間複雜度?已排序數組查找一個元素的時間複雜度?

9)若是你和你同窗在討論項目的時候意見沒法統一,你該怎麼作?

10)你有什麼問題想要問的嗎?


二面:

二面主要就是面作的項目,簡歷上的項目都問了,並且有些地方還問的很細。因此既然你敢寫上簡歷,那麼上面的每部份內容都有比較清楚才行。

1)問:請作一個簡要的自我介紹吧。

2)問:請你依次說說你作的每個項目。
答:我在簡歷上寫了三個項目,而後面試官一個一個項目慢慢問,並且問得很仔細。好比其中提到了一個定位算法,就問我是怎麼設計的,根據什麼如何有效建模,而且是怎麼樣驗證算法有效性,如何處理邊界特殊狀況等等。一句話,簡歷上面出現的內容,本身是要真的要知道而且能說出因此然,若是是似懂非懂的內容,不是很建議寫到簡歷,否則面試官一個簡單追問就可能答不上來,就有點尷尬了。項目這一塊大概面了二十多分鐘,問得很詳細,因此聊的時間久了一些。

3)問:在寫shell腳本的時候,怎麼樣判斷一個文件是否存在?

4)問:Linux系統下如何查看一個端口的佔用狀況?查看進程呢?

5)問:Linux系統下怎麼樣查看系統的運行情況?
這裏我回答了top命令,而後就被追問loadaverage的幾個數值的含義,還追問了這個命令其餘操做。

6)問:如何修改主機名?如何查看本機的ip?
我在回答查看ip的時候說了ipconfig,面試官很友好的提醒讓我再想一想。這才尷尬地發現本身說成了Windows下的DOS命令,趕忙改口說出了ifconfig。這裏不得不感慨一下阿里的面試官真是nice,讓人感受交流很舒服,絲毫沒有高高在上的架子。

7)問:怎麼樣對數據庫查詢進行優化?
主要說了索引的優化,包括複合索引以及建立索引、使用索引關鍵字查詢的順序等該注意的問題。

8)問:說說你對concurrentHashMap的理解。
這個問題在一面的時候涉及到了,在那以後仔細看了這部分的源碼和資料,因此這裏回答得比較順利。可見,concurrentHashMap是一個很是重要的知識點,須要特別關注。

9)問:JVM的內存結構?
這裏須要對JVM有必定的瞭解,從JVM內存的Java棧、Java堆、本地方法棧、程序計數器、方法區的結構以及對應的做用等方面回答。

10)最後問了一道智力題,當時腦殼一時轉不過來了,面試官很耐心的引導仍是沒有答出來,不過面試官很友好的告知了答案。

最後結束的時候面試官說讓我等待接下來的面試,聽到這個仍是挺開心的,這意味着二面過了,準備三面吧。

三面:

三面等了一個多星期纔來,某天晚上十點離開實驗室的時候忽然來了電話,不得不說阿里的面試官也是蠻拼的,這麼晚了還要面試。

1)問:我是阿里巴巴的面試官,請你先做一下自我介紹。
自我介紹多了感受回答的要點和套路都比較清楚了,這就是所謂的經驗積累了。

2)問:說說對你印象或收穫最多的項目。
結合本身的項目具體介紹,突出本身在項目中起到的做用和收穫,最好說說本身在項目前、中、後是如何思考的。

3)問:你對將來是怎麼樣規劃的?

4)問:你如今是在武漢,那麼假設你是武漢市消防相關部門的負責人,沒有任何數據的前提下你認爲武漢須要部署多少個消防站?
這種題目應該是開放性的,我的以爲最重要的一點就是要表現出你是如何思考的。

5)問:你是如何與身邊的人相處的?有矛盾的時候怎麼處理?

6)問:你有什麼想要問的嗎?

三面聊了30到40分鐘這樣,沒有涉及不少技術的問題,說的主要是項目和其餘非技術問題,聊完以後面試官就讓我等下一輪面試了。


四面:

等了一個多星期,某個晚上八點多終於等到了阿里HR的面試電話。

1)請做一下自我介紹吧。

2)你研究生是保研的嗎?

3)從本科開始到研究生你是怎麼學習的?有沒有什麼變化?

4)你平時的平常生活是如何安排的?

5)我看到你有參加過學院的籃球比賽,除了籃球外有沒有什麼愛好?你如何調節學習和娛樂的時間分配?

6)我看到你有班幹部的經歷,請問組織活動的時候你是如何組織同窗保證活動有序進行的?

7)你對你本身的將來有沒有什麼規劃?

8)你有什麼想問的嗎?

四面HR面的比較快,才三十多分鐘就結束了。面試的時候感受面試官比較急,多是還要面試不少人吧。有些話我這邊還沒說完就被面試官搶過去了,明顯感受面試官在趕時間想要快點結束這一輪面試,不過阿里的HR MM也是辛苦,晚上還要加班面試。

焦急等待了接近一週以後,就收到阿里的offer了,這是找實習收到的第一個offer,瞬間以爲這前先後後2個月的準備也算是有了一份回報,立刻抱起籃球懷着激動的心情和同窗去了籃球場大戰三百六十回合。shell

3 華爲

三月份通過華爲的筆試(三道編程題),順利進入面試環節。不過據說華爲的筆試不刷人,反正面試現場人上人海的,熱鬧非凡。華爲面試一天就結束,效率比較高,我的相對比較偏好這種一面試結束就能夠知道結果的方式。數據庫

一面:

1)問:自我介紹。

2)問:interface和abstract class的區別。
從修飾類的關鍵字、類聲明方式、類變量、方法體、繼承、實現、功能及用法等方面闡述。

3)問:對關鍵字assert的理解。
斷言機制。圍繞測試時使用,項目發佈時停用具體描述。

4)問:JVM的內存結構模型。
Java棧、Java堆、本地方法棧、方法區、程序計數器。

5)問:垃圾回收算法和執行機制。
主要有標記-清除、標記-整理、複製算法、分代回收算法等,和串行回收、並行回收等。

6)問:哪些對象在什麼時候會被回收?如何精肯定位具體的對象?
再也不被引用的對象就會成爲垃圾對象,即不在引用鏈上的對象將被回收,經過引用鏈能夠肯定垃圾對象。

7)問:GC ROOT對象有哪些?和引用鏈的關係怎麼理解?
圍繞靜態對象、常量對象、方法區對象等分析。

8)問:若是是在方法裏面建立的本地對象,它會建立在內存結構的哪一個地方?如何訪問該對象?
在Java棧的棧幀裏面建立了對象的引用,在堆上建立了對象,棧幀裏的引用指向堆中的對象。這裏一開始的時候面試官描述的不是很清楚,交流的時候有了一些爭論,隨着討論深刻,問題範圍縮小後就能夠準確回答了。這裏聊了十多分鐘,最後面試官很滿意的說了幾個字「徹底正確」,直接讓我去下一輪面試了。

據現場瞭解,華爲的一面刷人很多。在等待開始二面開始以前,被一個HR小姐姐帶到機房去作測試去了。我覺得是現場考編程,後面一看是作性格測試題,瞬間感受有戲了。作完四十分鐘的性格測試後準備二面,據說就是直接終面了。

二面:
面試官看起來就是部門位高權重的領導,看上去都有五十多了,年紀挺大的,一副領導的架子,感受有點小壓抑。

1)問:自我介紹。

2)問:對作過的項目作個簡單介紹。
這裏有些地方想詳細深刻講解,面試官直接對我揮揮手,示意【不用】,此刻個人心裏是翻騰的= =。

3)問教育經歷。

4)問對將來的規劃。爲何選擇深圳?

5)問學生工做和班幹部的經歷
結合經歷具體介紹,突出本身在決策、組織和領導等各方面的能力。

6)問興趣愛好
我平時比較喜歡打籃球,也參加了學院組織的比賽,最後面試官和我聊起了NBA。還討論了今年季後賽的幾組對戰,當時仍是在季後賽首輪,面試官還讓我預測東西部冠軍,預測最後總決賽對戰雙方(汗顏)。

就這樣二面結束了,注重的不是技術考察而是我的的綜合素質。在我離開的時候,門口的工做人員讓我回去等通知了,說是在十個工做日內會有通知。我知道,華爲有戲!過了一個星期,收到了華爲的offer。

最終決定實習去杭州。編程

相關文章
相關標籤/搜索