職位類型:技術類
面試時間:2013校招(2012年10月)
招聘公司:網易
樓主是在廣州大學參加的筆試,一共兩個小時。觀察了一下周邊的考場,人數不多,很安靜。跟騰訊那混亂的場面,網易做得好多了。我想是因為網易在網上審核階段就已經很認真地篩選了一部分人,我身邊的好幾個技術不錯的同學都被刷了,所以,提醒以后網申網易的同學,一定要認真對待網申。看了看考場外的名單,同我一個方向的只有十個人,其他可能是分配到了其他考場吧。我筆試時,左右兩邊是HR管培生方向的,大家都沒有辦法作弊。總的感覺網易的筆試很正規,公平公正,有高考的感覺。
筆試題目是純技術的,主要是計算機基礎和程序設計,沒有網上分享的一些題目有什么文學題、推理題。下面我就把記得的題目跟大家分享一下。
第一部分:計算機基礎(選擇題都是多選題)
1.選擇題:按照e1、e2、e3、e3、的順序進棧,出棧的順序可能是下面的哪種?
選項記不清了,但是很容易,只要從A到D去驗證答案的順序是否正確就行。我全選。這樣的題目其他公司也考過很多次。
2.中綴表達X=A B*(C-D)/E式轉后綴表達式。
選項四個,但是貌似只有一個正確的。有些選項是把中序進行變形,應該是移項之后再求后綴的。
3.問以下排序算法哪些是不穩定的。
A 快速排序???? B堆排序?? C哈希排序? D冒泡排序 E? 合并排序
答案是:ABC(我選漏了B,悲劇呀)
4.(填空題)一個四叉樹、有n個結點,每個結點都有四個指向它的四個孩子的指針,那么在這4n個指針中,空指針有多少個______。
5.(寫程序)實現斐波納契數列,寫一個算法求數列的第n項的值。給出算法復雜度,盡量高效。
??????
我是這樣實現的,不知道是不是最優。
第二部分:程序設計
這些題目有些是讀程序的,我記不住那么多。考了很多操作系統方面的,java的多線程、IO操作、集合框架是重點呀。
1.網易的郵箱有@126.com、@136@.com、@yeah.net 。用戶名長度6~18,以字母開頭,不區分大小寫,其他可以是任意字母或數字。以下正則表達式哪個能正確檢查賬號的正確性。
選項記不清。但是不難,大家應該也可以寫出來。
2.以下程序輸出什么?
運行一下,結果是0。記住,>>運算符的優先級比 低,也就是c = 5>> (2 10) >> 2;?
3.說說HashMap和TreeMap的區別? 還有不是很記得是哪兩個類的區別了,反正也是集合框架里面的。
4.關于I/O流操作的。給出了四種情況,然后使用I/O流體系內提供的類寫出正確的實現組合。題目提供了很多操作流的類,我不一一寫出了,附上一張網上找的圖片。
⑴文件的路徑:D:\file\test.txt ,讀取改文件,并從該文件中按行獲取內容(好像是這樣表述的);
⑵文件的路徑:D:\file\test.data? ,是字節數據,讀取該文件并按行輸出內容;
⑶str是很長的字符串……忘記了……
⑷…………
倒數第二題:實現序列化接口Serialize的時候,如果不指定serialVersionUID 的值,編譯時就會出現警告,為什么?什么情況下需要修改serialVersionUID 的值?
參考:序列化運行時使用一個稱為 serialVersionUID 的版本號與每個可序列化類相關聯,該序列號在反序列化過程中用于驗證序列化對象的發送者和接收者是否為該對象加載了與序列化兼容的類。如果接收者加載的該對象的類的 serialVersionUID 與對應的發送者的類的版本號不同,則反序列化將會導致 InvalidClassException。可序列化類可以通過聲明名為 "serialVersionUID" 的字段(該字段必須是靜態 (static)、最終 (final) 的 long 型字段)顯式聲明其自己的 serialVersionUID:ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;
如果可序列化類未顯式聲明 serialVersionUID,則序列化運行時將基于該類的各個方面計算該類的默認 serialVersionUID 值,如“Java(TM) 對象序列化規范”中所述。不過,強烈建議 所有可序列化類都顯式聲明 serialVersionUID 值,原因計算默認的 serialVersionUID 對類的詳細信息具有較高的敏感性,根據編譯器實現的不同可能千差萬別,這樣在反序列化過程中可能會導致意外的 InvalidClassException。因此,為保證 serialVersionUID 值跨不同 java 編譯器實現的一致性,序列化類必須聲明一個明確的 serialVersionUID 值。還強烈建議使用 private 修改器顯示聲明 serialVersionUID(如果可能),原因是這種聲明僅應用于立即聲明類 -- serialVersionUID 字段作為繼承成員沒有用處。
6.最后一題(題目好長):一個系統有多個定時任務,設計一種數據結構用來存儲這些任務。考慮定時任務的添加、刪除和觸發。有10000個任務的時候,分析這種數據結構的性能。(大概是這樣的意思)
我寫了一個散列表。類似于HashMap的結構。我的理解是,在添加、刪除和觸發的操作中,觸發更重要一些。因為定時要準確,觸發的延時就決定了定時的準確性。而觸發操作我理解成是查找操作,找需要喚醒的那個定時。而哈希查找性能是最理想的。不知道我這樣的理解是否正確,求指導。
其他的題目我都不記得了,大家可以來補充一下,答案也是,大家互相交流一下。