1. 程式人生 > >2017年網易校招Java面試題

2017年網易校招Java面試題

昨天參加了網易2017年校招面試,但是,一輪就被刷下來。仔細想想,確實自己實力不夠,今後需要更加努力!以下我是本次面試的經歷,主要講述面試題。

簡訊預約的是下午三點的面試,可是等到大概三點半才開始面試。我面試的Java開發,面試之前的幾天也抽時間看了點網上的資料和書,但是,面試的時候才發現,實力不夠,臨時抱佛腳還是不行的。好啦,言歸正傳,看下面試的時候問的問題。
(1) 自我介紹
坐下來將簡歷遞給面試官,面試官先讓我做了個自我介紹。這個不多說,每個人都有自己的介紹方式,我一般說一些基本資訊,加上我比較擅長的專業領域和一些平時對技術的專研,然後就是介紹下自己平時的興趣愛好。

(2) 專案介紹
面試官問我在學校裡做過什麼比較大的專案。我簡要的介紹了一下我們做的實訓專案,和我在這個專案中所負責的模組,以及這個模組的主要實現邏輯。

(3) 實習工作介紹
我現在在公司實習快兩個月了,可是並沒有開始幹什麼拿得出手的事情。開始就是搭搭環境,改改bug,近期才分了點小任務。所以,這裡我覺得,在面試的時候,我沒有回答好這個問題。首先是真的沒有做很多事情,其實是沒有將做過的事情表達清楚。

(4) 描述從Java原始碼到獲得執行結果的的整個過程
面試官問我這個問題,主要是因為我在簡歷裡寫了我瞭解JVM,唉,給自己挖了個坑。從原始碼到得到執行結果的過程我確實看過,可是應該是好幾個月前看的了,平時沒事又不是去用這些東西,所以忘得差不多了,我只能說出些大概。這個題確實沒回答好。這個問題要說清楚我感覺不太容易,我找了一下,覺得這篇文章(

http://my.oschina.net/xiejunbo/blog/614437)說到了一些,但是並不是解釋的很好。

(6) JVM中的垃圾回收機制
一般問了記憶體分佈,那就會結合問垃圾回收,因為這是一脈相承的問題。記憶體是有限的,在記憶體不足的時候就需要對記憶體進行清理。在JVM中垃圾回收首先需要判斷物件是否還有用,一般有引用計數法和可達性分析法。這兩種方法都需要了解,同時知道引用計數法的相互迴圈引用問題。判斷完對相關是否有用之後,那接下來就對沒用的物件進行回收。那這裡就涉及到垃圾收集演算法,主要有標記-清除演算法、複製演算法、標記-整理演算法以及分代收集演算法。同時,還最好了解有哪些垃圾收集器。關於垃圾收集演算法和垃圾收集器,這篇部落格(

http://jbutton.iteye.com/blog/1569746)寫的很清楚。

(7) hashmap的資料結構
Map和Collection是面試中經常問及的問題。首先面試官問了我實現hashmap的資料結構,hashmap在底層是通過陣列+連結串列的方式來實現的,這一點可以從原始碼裡清楚地看出。然後問題hashmap是否執行緒安全,這個當然是執行緒不安全的了。那如何去讓它變得執行緒安全呢?對於這個問題,這篇部落格(http://flyfoxs.iteye.com/blog/2100120)寫得非常好。

(8) NIO框架
在面試前確實沒有用過也沒有看過關於NIO框架的知識,所以,只能承認,我不會!所以,平時不能僅侷限於夠用,侷限於學習工作中用到的,而應該多瞭解周邊的知識。

(9) Trie樹
這個也確實沒有深入瞭解過,但是面試官寫這個的時候好像也寫錯了,他自己也不確實是不是這麼寫。然後就給我說了一個場景,就是在輸入框輸入單詞前幾各字母,提示以這些字母開頭的所有單詞。我當時的想法是構建一棵樹,根節點下是26個字母,然後每個字母下接26個字母,如此往復。但仔細一想,這好像有點可笑。

(10) 堆排序過程
最後面試官問了一下堆排序的過程,讓我在紙上舉一個例子,畫一下排序過程。這個還是比較瞭解,先把原陣列建構一個小頂堆,從最後的數字開始於自己的父節點進行比較和置換(如果滿足置換條件),置換完成即可找到最小的數,將最小的數與最後一個數交換位置,再重複以上過程,就可以將陣列進行排序。

總結下來,就是整個面試中的問題都回答得不夠好,或者根本沒回答出來,所以結果也就只能這樣了。只有在接下來的日子多努力了!希望我的分享能給你一些幫助,那便足矣。