如何準(zhǔn)備Java初級和高級的技術(shù)面試?

本人最近幾年一直在做java后端方面的技術(shù)面試官鸽凶,而在最近兩周币砂,又密集了面試了一些java初級和高級開發(fā)的候選人,在面試過程中玻侥,我自認(rèn)為比較慎重决摧,遇到問題回答不好的候選人,我總會再三從不同方面提問凑兰,只有當(dāng)反復(fù)確認(rèn)能力不行才會下結(jié)論掌桩。

相反,如果候選人給我的印象不錯姑食,我也會從多個角度來衡量波岛,以免招進會說但不會干活的“大忽悠”。

其實倒也不是我故意要為難候選人音半,畢竟入職后就是同事则拷,但面試官的職責(zé)使然,而且曹鸠,如果資深的面試官一般也這樣煌茬。

寫到這里,恐怕會嚇到一些想要面試的朋友物延,能力強和能力弱都會被多問,那怎么辦仅父?

這就是本文將要講到的主題:?如何準(zhǔn)備Java初級和高級的技術(shù)面試叛薯。

一. 換位思考下浑吟,如果你是面試官,你會怎么做

1. 只能通過簡歷和面試來衡量耗溜,別無他法组力。如果某位大牛確認(rèn)能力很行,但面試時無法充分地自證能力抖拴,那對不起了燎字,過不了,現(xiàn)實就這樣阿宅。

2. 如果面試官由于能力不行候衍,招進來一個大忽悠,那估計會被領(lǐng)導(dǎo)罵洒放。而且再也不會被讓面試了蛉鹿,給領(lǐng)導(dǎo)的印象就不好了。所以不能評主觀印象往湿,而是會有些客觀標(biāo)準(zhǔn)妖异,具體而言,就是從多個方面問些題目领追,答好答壞就看候選人的他膳。

其實一些題目都差不多,但不同能力的面試官問問題的切入點和漸進程度會不同绒窑,而且有經(jīng)驗的面試官會挖掘候選人的優(yōu)勢棕孙,并能從候選人的說辭中判斷候選人是真懂還是忽悠。

二. 總體上說下準(zhǔn)備面試的幾個方面點

記得之前考政治回论,某個大題10分散罕,分5個點,每個點的標(biāo)準(zhǔn)答案不多傀蓉,也就一兩句話欧漱。比較取巧的做法是,涵蓋點要全葬燎,每個點無需多說误甚,但要說到點子上。相反谱净,如果在某個點做得再多窑邦,其它點沒覆蓋到,只能拿這個點的分壕探。

同理冈钦,在面試時,應(yīng)當(dāng)綜合準(zhǔn)備 java Core李请,數(shù)據(jù)庫瞧筛,框架厉熟,分布式等方面的題目。根據(jù)我面試的結(jié)果较幌,我發(fā)現(xiàn)不少候選人走了彎路揍瑟,他們或者干脆不準(zhǔn)備,準(zhǔn)備時可能方法不到位乍炉,單準(zhǔn)備一個方面绢片。比如只準(zhǔn)備了算法題,在這方面回答很好岛琼,但其它方面就一無所知了底循。

所以說,沒有所謂的一定能成功的面試秘籍衷恭,但有可以幫助提升成功率的準(zhǔn)備方法此叠。

切記,面試前一定得準(zhǔn)備随珠,否則成功的可能性很低灭袁,準(zhǔn)備時,得綜合看各方面的點窗看。至于每個點要到什么程度茸歧,后文會講到。

三. 架構(gòu)方面需要準(zhǔn)備的點

初級開發(fā)而言显沈,需要讓面試官感覺出如下的要點软瞎。

1. 熟悉SSM架構(gòu),至少在項目里做過。

這個的說法是,介紹項目時笨触,用一個業(yè)務(wù)流程來說spring mvc如何做的。

2. 知道Spring MVC中的細(xì)節(jié)只锭,比如@Autowired的用法,如何把url映射到Controller上院尔,ModelAndView對象返回的方式等蜻展。

3. 最好結(jié)合項目的用法,說下你是怎么用AOP邀摆,攔截器的纵顾,比如說可以通過攔截器攔截非法請求,怎么用 AOP輸出日志等栋盹。

4. 關(guān)于ORM方面施逾,不限用過哪種,但得知道一對一,一多多汉额,多對多等的用法沪饺,以及cascade和inverse的用法。

5. 最好知道聲明式事務(wù)的做法闷愤。

如果你要應(yīng)聘高級開發(fā),那在上述基礎(chǔ)上件余,最好了解如下的知識點:

Spring Bean的周期

最好能通過閱讀源代碼讥脐,說下IOC,AOP以及Spring MVC的工作流程,推薦閱讀:?史上最全 69 道 Spring 面試題和答案

最好能結(jié)合反射啼器,說下IOC等的實現(xiàn)原理

Spring Boot和Spring Cloud的一些知識點

四. 數(shù)據(jù)庫方面需要準(zhǔn)備的點

不少候選人會看很多SQL的技巧旬渠,比如select該怎么寫端壳,insert又該怎么寫告丢,但僅限于此,不會再準(zhǔn)備其它的损谦。

這樣就很吃虧岖免,因為面試官會認(rèn)為,哪怕是初級開發(fā)照捡,SQL語句也該會寫颅湘,所以這塊不會多問,而會問如下方面的問題栗精。

1. 索引怎么建的闯参,怎么用的?比如我建好了一個索引悲立,在where 語句里寫 name like ‘123%’會不會走索引鹿寨,怎么情況下不該建索引,哪些語句不會走索引薪夕。

2. 除了索引之外脚草,你有過哪些SQL優(yōu)化方面的經(jīng)驗,比如分庫分表寥殖,或通過執(zhí)行計劃查看SQL的優(yōu)化點玩讳。這最好是能結(jié)合你做的項目實際來講。

這里嚼贡,我面試下來熏纯,大概有70%的候選人只知道基本SQL的寫法,所以哪怕你是只有理論經(jīng)驗粤策,會說一些優(yōu)化點樟澜,也是非常有利的。

這塊對于高級開發(fā)而言,更得了解優(yōu)化方面的技能秩贰。推薦閱讀:?37 個 MySQL 數(shù)據(jù)庫小技巧霹俺,不看別后悔!

五. Java Core方面需要準(zhǔn)備的點

這塊是基礎(chǔ)毒费,其實很多問的問題丙唧,候選人一定會在項目里用到,但很少能說好說全觅玻。

這塊主要會從集合想际,多線程,異常處理流程以及JVM虛擬機這些方面來問溪厘。

集合方面:

1. hashcode有沒有重寫過胡本?在什么場景下需要重寫。如果可以畸悬,結(jié)合hash表的算法侧甫,說下hashmap的實現(xiàn)原理。

對于高級開發(fā)而言蹋宦,最好通過ConcurrentHashMap來說明下并發(fā)方面的底層實現(xiàn)代碼披粟。

2. ArrayList,LinkedList的差別冷冗,比如一個基于數(shù)組僻爽,一個基于鏈表,它們均是線程不安全的贾惦,ArrayList的擴容做法等胸梆。

對于高級而言,最好看下底層的代碼须板。

3. Set如何實現(xiàn)防重的碰镜,比如TreeSet和HashSet等。

4. Collection的一些方法习瑰,比如比較方法绪颖,包裝成線程安全的方法等。

5. 可能有些面試官會問甜奄,如何通過ArrayList實現(xiàn)隊列或堆棧柠横,這個可以準(zhǔn)備下。

多線程方面课兄,其實在項目里不怎么會用到牍氛,但會問如下的問題:

1. synchronized和可重入鎖的差別,然后可能會順便問下信號量等防并發(fā)的機制烟阐。

2. 在線程里該如何返回值搬俊,其實就是callable runnable 區(qū)別紊扬。

3. 一定得通過ThreadLocal或volatile關(guān)鍵字,來說明線程的內(nèi)存模型唉擂。

4. 線程池方面餐屎,會用,了解些常用參數(shù)

線程方面玩祟,可能問得比較多的就是并發(fā)機制腹缩,如果是高級開發(fā),可能會問得深些空扎。

虛擬機方面

1. 結(jié)構(gòu)圖和流程可以大致說下庆聘。

2. 一定得了解針對堆的垃圾回收機制,具體而言勺卢,可以畫個圖,說下年輕代年老代等象对。

3. 說下垃圾回收的流程黑忱,然后針對性地說下如何在代碼中優(yōu)化內(nèi)存性能。

4. 最好說下如果出現(xiàn)了OOM異常勒魔,該怎么排查甫煞?如何看Dump文件。

5. GC的一些概念冠绢,比如強弱軟引用抚吠,finalize方法等,這些可以準(zhǔn)備下弟胀。?在Java技術(shù)棧微信公眾號后臺回復(fù):Java楷力,可以閱讀Java核心技術(shù)知識點。

六. 算法孵户,設(shè)計模式等萧朝,其實是虛的

這塊好準(zhǔn)備,不過話說哪怕這些沒回答好夏哭,但能證明有相關(guān)技能的項目經(jīng)驗检柬,一般也會讓過。

不過在這塊竖配,不少候選人就本末倒置了何址,比如就準(zhǔn)備算法,設(shè)計模式进胯,剛才提到的框架用爪,數(shù)據(jù)庫和Java Core方面就不準(zhǔn)備了。這樣很吃虧胁镐,就好比考政治只復(fù)習(xí)了一個點项钮,其它一點也不準(zhǔn)備。

七. 我面試的感受&聽到哪類回答就能證明候選人比較資深

1. 大多數(shù)的候選人(大概7成)直接就來了,不做任何準(zhǔn)備烁巫。要知道署隘,面試和項目其實有些脫節(jié),哪怕項目做得再好亚隙,不做準(zhǔn)備照樣通不過磁餐,只要我確認(rèn)過這類人確實無法達標(biāo),我拒掉他們沒任何心理負(fù)擔(dān)阿弃,誰讓他們不準(zhǔn)備诊霹?

2. 還有些候選人態(tài)度很好,明顯準(zhǔn)備過渣淳,但沒準(zhǔn)備到位脾还,比如像剛才所說,只準(zhǔn)備了算法入愧,或者在Java Core方面鄙漏,只看了集合方面的面試題。對于這些同學(xué)棺蛛,哪怕是過了怔蚌,我也會感到惋惜,畢竟如果面試好些的話旁赊,工資也能更高些桦踊,至于哪些過不了的,我敢說终畅,如果他們準(zhǔn)備過籍胯,估計就不是這個結(jié)果了。

其實我也知道离福,人無完人芒炼,哪怕我自己去面試,也不可能面面俱到术徊,所以本刽,我不會要求候選人什么問題都能回答出,甚至大多答錯也沒關(guān)系赠涮,只要能證明自己的能力即可通過面試子寓。

我也和不少面試官交流過,根據(jù)我們的經(jīng)驗笋除,如果候選人能說出如下的知識點斜友,即能證明他在這個領(lǐng)域比較資深了,在這塊垃它,我可能就不會過多地問問題了鲜屏。

架構(gòu)方面

1. 能證明自己可以干活(這不難)烹看,同時能結(jié)合底層代碼說出IOC,AOP或Spring MVC的流程洛史,只要能說出一個即可惯殊。或者能說出攔截器也殖,Controller等的高級用法土思。

2. 能證明自己有Spring Boot或Spring Cloud的經(jīng)驗,比如能說出些Spring Cloud組件的用法忆嗜。

3. 如果能證明自己有分布式開發(fā)的經(jīng)驗己儒,那最好了,其實這不難證明捆毫,比如能說出服務(wù)的包是放在多臺機器上(大多數(shù)公司其實都這樣)闪湾,而且能說出如何部署,如何通過nginx等做到負(fù)載均衡绩卤。

數(shù)據(jù)庫方面途样,其實講清楚一個問題即可:如何進行SQL調(diào)優(yōu),比如通過索引省艳,看執(zhí)行計劃即可,如果有其它的優(yōu)化點嫁审,說清楚即可跋炕。

Java Core方面,這里給出些訣竅:

1. 能結(jié)合ConcurrentHashMap的源代碼律适,說出final,volatile,transient的用法辐烂,以及在其中如何用Lock對象防止寫并發(fā)。

2. 結(jié)合一個項目實際捂贿,說下設(shè)計模式的實踐纠修。

3. 多線程方面,能說出Lock或volatile等高級知識點的用法厂僧。

4. 這塊最取巧:說下GC的流程扣草,以及如何通過日志和Dump文件排查OOM異常,如果再高級些的話颜屠,說下如何在代碼中優(yōu)化內(nèi)存代碼辰妙。

訣竅點歸結(jié)成一個:能結(jié)合源代碼或項目實際,說出些比較資深的問題甫窟。在java技術(shù)棧微信公眾號后臺回復(fù):多線程密浑,可以閱讀Java多線程技術(shù)文章。推薦閱讀:?史上最全 Java 多線程面試題及答案

八. 本文的側(cè)重點

本文的側(cè)重點是:

面試一定得準(zhǔn)備 (重要的話說三遍粗井,這里已經(jīng)超過3遍了)

如何全面充分地準(zhǔn)備尔破。

至于為什么要寫這個文章街图?我得不停地總結(jié)我作為面試官的技巧,這樣我在面試中也能更高效更準(zhǔn)確地招到合適的人才懒构。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末餐济,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子痴脾,更是在濱河造成了極大的恐慌颤介,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赞赖,死亡現(xiàn)場離奇詭異滚朵,居然都是意外死亡,警方通過查閱死者的電腦和手機前域,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門辕近,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人匿垄,你說我怎么就攤上這事移宅。” “怎么了椿疗?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵漏峰,是天一觀的道長。 經(jīng)常有香客問我届榄,道長浅乔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任铝条,我火速辦了婚禮靖苇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘班缰。我一直安慰自己贤壁,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布埠忘。 她就那樣靜靜地躺著脾拆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪莹妒。 梳的紋絲不亂的頭發(fā)上假丧,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音动羽,去河邊找鬼包帚。 笑死,一個胖子當(dāng)著我的面吹牛运吓,可吹牛的內(nèi)容都是我干的渴邦。 我是一名探鬼主播疯趟,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼谋梭!你這毒婦竟也來了信峻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤瓮床,失蹤者是張志新(化名)和其女友劉穎盹舞,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體隘庄,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡踢步,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了丑掺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片获印。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖街州,靈堂內(nèi)的尸體忽然破棺而出兼丰,到底是詐尸還是另有隱情,我是刑警寧澤唆缴,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布鳍征,位于F島的核電站,受9級特大地震影響面徽,放射性物質(zhì)發(fā)生泄漏艳丛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一斗忌、第九天 我趴在偏房一處隱蔽的房頂上張望质礼。 院中可真熱鬧旺聚,春花似錦织阳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至碱璃,卻和暖如春弄痹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嵌器。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工肛真, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人爽航。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓蚓让,卻偏偏與公主長得像乾忱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子历极,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容