一面(10分鐘) 一面只有10分鐘,開頭就自我介紹下,介紹了一分鐘把。然后面試官就讓我說說我的一個項目。然后我就開始說啊,從項目開始的時候什么都不懂,到第一次上線崩掉之后,開始考慮分布式設計,然后引入負載均衡啊,然后還有圖片數(shù)據(jù)庫服務器分離啊,引入redis服務器啊,分布式session啊,然后還有針對預估的最大并發(fā)做了壓力測試啊,然后給他畫了個項目最終改造完成后的系統(tǒng)拓撲圖。 全程都是我說,他一句話也沒說,說了得有七八分鐘吧。 然后我說完他也沒針對這個項目問我啥問題,就問了幾個其他的問題。 1、學java幾年了,平時學java怎么學的啊,看過哪些書? 我說我沒怎么看書,只看了think in java的幾個核心章節(jié),平時都是喜歡看別人博客。 2、http狀態(tài)碼3xx 4xx 5xx分別是啥 重定向,客戶端錯誤,服務器端錯誤 3、如果我們一個項目,理論上需要1.5G的內(nèi)存就足夠,但是項目上線后發(fā)現(xiàn)隔了幾個星期,占用內(nèi)存到了2.5G,這時候你會考慮是什么問題?怎么解決? 我回答會首先考慮內(nèi)存泄漏,使用MemeryAnalyzer之類的工具分析檢查哪里有泄漏,然后他又問用過MemeryAnalyzer嗎? 我說沒用過。。 然后一面就這么完了,我出來之后等面試的時候認識的小伙伴問我怎么還沒開始面,我說我面完了(繼續(xù)手動笑哭) 二面(30分鐘) 一面完5分鐘開始,這個面試官讓我懷疑我是不是自帶了逗逼屬性,我一說話他就笑,可能我說話有時候是有點逗,當然也是因為覺得自己肯定過不了二面,所以特別放的開(再次笑哭),然后整個面試就很和諧,面試官也笑了全場,本來他剛開口的時候還是很嚴肅的,所以啊,面試千萬別慌,面試官也想以后有個談的來的同事嘛,對吧=。= 這輪面試我面完都覺得肯定過不了,總共問了那么幾個問題我好幾個沒答上來,所以呢,我覺得能過還是因為前面項目聊的不錯。 開始還是先說項目,然后又是一面那一套,但是這個就問的很細了,我說完之后就開始問很多細節(jié)的東西,比如分布式session怎么實現(xiàn)的,然后redis里面放了什么東西啊,核心邏輯怎么實現(xiàn)的啊,BLABLABLA,項目聊了20分鐘,這時候說下一點感悟,就是聊的時候一定讓把你解決問題已經(jīng)學習的過程體現(xiàn)出來,這些可能是面試官希望看到的。包括遇到問題時你的思維方式等等,項目這東西就不多說了,因為每個人的項目不同,自己根據(jù)自己的項目準備好可以吸引到面試官的點就ok了。下面就是問的幾個問題了。 因為大部分時間在聊項目,后來也沒問幾個問題。 1、hashmap的原理。 結合著源碼blabla,然后包括1.6時Entry,1.8是Node 還有對key的hashcode1.6和1.8用的算法不一樣啊之類的blabla,說了一通,什么fail-fast機制啊啥啥啥的。 2、哪些方法實現(xiàn)線程安全。 synchronized,reentrantlock,volatile,然后重點說了下volatile在某些情況下可以實現(xiàn)線程安全,然后就把面試官注意力往volatile上引,因為volatile這個專門看了一下,果然,面試官馬上問了volatile。 3、volatile是實現(xiàn)了什么功能呢? 然后就把自己看得亂扯了一通,比如volatile修飾匯編時會在修飾字段前加LOCK字段啊,內(nèi)存屏障啥啥啥的扯了一通,就是想讓面試官覺得對某些方面了解還是蠻深的。 4、如果想實現(xiàn)一個線程安全的隊列,可以怎么實現(xiàn)? JUC包里的ArrayBlockingQueue 還有LinkedBlockingQueue啥的又結合源碼說了一通。 5、說說http報文的header里面有什么? WTF!一臉懵逼,沒怎么看網(wǎng)絡這部分,腦子一片空白,直接說記不清楚了。 6、給了一個類加載時先后順序的問題,給了段代碼,讓你寫出輸出結果,就靜態(tài)代碼段啊構造函數(shù)之類的加載順序。 這個我也是給跪了,我寫對了結果,但是給他解釋為什么的時候解釋錯了,把順序記反了,還是自己沒記清楚。。。 7、JVM的內(nèi)存分區(qū) 五個分區(qū),然后扯了扯垃圾回收算法,主動扯,然后就被打斷了,就說不用說了。 8、數(shù)據(jù)庫的事務管理級別,默認什么級別,會出現(xiàn)哪些問題 四個級別,默認我說是讀已提交,但是其實MYSQL的默認應該是可重復讀,這個我也是回來才發(fā)現(xiàn)的。然后就說了默認讀已提交會出現(xiàn)不可重復讀和幻讀。 9、最后讓寫個SQL語句。 我當時是懵逼的,我直接給他說我平時寫sql都是搜索引擎查著語法寫,然后他說沒事兒,又不讓你全寫對,你咋想的咋寫就行了。然后大概SQL應該是個 select。。SUM()。from A left join B on A.id=B.id Where ...ORDER BY ... 然后我當時是真記不清了。。sql寫的少,然后把left join on 寫成了left join where 然后最后order by 也忘掉了。。 問完他讓我前臺等等結果,我以為掛定了,畢竟真的答的爛。結果沒想到竟然給我過了。 所以還是。。。緣分啊。。。 三面(HR 30分鐘) hr面沒啥好說的,政治正確,表現(xiàn)出強烈的想來網(wǎng)易,想來杭州,并且表現(xiàn)我很希望穩(wěn)定的在網(wǎng)易待著的意愿,聊唄。不過我這hr比較嚴肅,男hr,全程撲克臉,搞得我壓力蠻大的,不過還是聊了半個小時,然后聊完下午三點,打車西湖坐個船,杭州之旅圓滿。
面試官問的面試題: 編程語言基礎(C++、Java) + 算法題(中等難度) + 數(shù)據(jù)結構 (樹、鏈表為主)+ 計算機網(wǎng)絡(TCP/IP相關) + 操作系統(tǒng)(進程和線程、內(nèi)存調(diào)度)+ 項目經(jīng)歷