如何面試java應(yīng)聘者
Java的主要工作是通過編程語言來制作互聯(lián)網(wǎng)頁面、制作動(dòng)態(tài)效果以及網(wǎng)站等技術(shù),那么面試官在面試時(shí)如何判斷應(yīng)聘者的好壞呢,本文是YJBYS小編分享給大家的如何面試java應(yīng)聘者,歡迎參考閱讀。
如何面試java應(yīng)聘者(一)
java面試官的“面試心得”
在公司當(dāng)技術(shù)面試官幾年間,從應(yīng)屆生到工作十幾年的應(yīng)聘者都遇到過。先表達(dá)一下我自己對(duì)面試的觀點(diǎn):
1.筆試、面試去評(píng)價(jià)一個(gè)人肯定是不夠準(zhǔn)確的,了解一個(gè)人最準(zhǔn)確的方式就是“路遙知馬力,日久見人心”。通過一、二個(gè)小時(shí)內(nèi)的做題、交流,只是沒有其他辦法下進(jìn)行的無奈之舉,所以通過了面試不代表有多成功,沒通過也不代表有多失敗。
2.好的面試官本身交談的時(shí)候就不應(yīng)當(dāng)把自己一個(gè)居高臨下的角色上,應(yīng)當(dāng)把自己和應(yīng)聘者當(dāng)做兩個(gè)做技術(shù)的人平等的交流,把自己當(dāng)作權(quán)威往往就會(huì)受到觀點(diǎn)的角度、語言表達(dá)、工作領(lǐng)域的慣性的制約。
3.好的考察題目則是大家能經(jīng)常接觸,不同層次的人能有不同層次的答案,能從問題引申出后面繼續(xù)討論的話題。
舉個(gè)例子拋磚引玉,下面這個(gè)問題是我以前常問的,從應(yīng)屆生到工作十幾年的人都問過:
引用
“地球人都知道,Java有個(gè)東西叫垃圾收集器,它讓創(chuàng)建的對(duì)象不需要像c/cpp那樣delete、free掉,你能不能談?wù),GC是在什么時(shí)候,對(duì)什么東西,做了什么事情?”
我自己分析一下這個(gè)問題,首先是“什么時(shí)候”,不同層次的回答從低到高排列:
1.系統(tǒng)空閑的時(shí)候。
分析:這種回答大約占30%,遇到的話一般我就會(huì)準(zhǔn)備轉(zhuǎn)向別的話題,譬如算法、譬如SSH看看能否發(fā)掘一些他擅長的其他方面。
2.系統(tǒng)自身決定,不可預(yù)測的時(shí)間/調(diào)用System.gc()的時(shí)候。
分析:這種回答大約占55%,大部分應(yīng)屆生都能回答到這個(gè)答案,起碼不能算錯(cuò)誤是吧,后續(xù)應(yīng)當(dāng)細(xì)分一下到底是語言表述導(dǎo)致答案太籠統(tǒng),還是本身就只有這樣一個(gè)模糊的認(rèn)識(shí)。
3.能說出新生代、老年代結(jié)構(gòu),能提出minor gc/full gc
分析:到了這個(gè)層次,基本上能說對(duì)GC運(yùn)作有概念上的了解,譬如看過《深入JVM虛擬機(jī)》之類的。這部分不足10%。
4.能說明minorgc/full gc的觸發(fā)條件、OOM的觸發(fā)條件,降低GC的調(diào)優(yōu)的策略。
分析:列舉一些我期望的回答:eden滿了minor gc,升到老年代的對(duì)象大于老年代剩余空間full gc,或者小于時(shí)被HandlePromotionFailure參數(shù)強(qiáng)制full gc;gc與非gc時(shí)間耗時(shí)超過了GCTimeRatio的限制引發(fā)OOM,調(diào)優(yōu)諸如通過NewRatio控制新生代老年代比例,通過 MaxTenuringThreshold控制進(jìn)入老年前生存次數(shù)等……能回答道這個(gè)階段就會(huì)給我?guī)肀容^高的期望了,當(dāng)然面試的時(shí)候正常人都不會(huì)記得每 個(gè)參數(shù)的拼寫,我自己寫這段話的時(shí)候也是翻過手冊的;卮鸬肋@部分的小于2%。
PS:加起來不到100%,是因?yàn)橛写_實(shí)少數(shù)直接說不知道,或者直接拒絕回答的= =#
分析第二個(gè)問題:“對(duì)什么東西”:
1.不使用的對(duì)象。
分析:相當(dāng)于沒有回答,問題就是在問什么對(duì)象才是“不使用的對(duì)象”。大約占30%。
2.超出作用域的對(duì)象/引用計(jì)數(shù)為空的對(duì)象。
分析:這2個(gè)回答站了60%,相當(dāng)高的比例,估計(jì)學(xué)校教java的時(shí)候老師就是這樣教的。第一個(gè)回答沒有解決我的疑問,gc到底怎么判斷哪些對(duì)象在不在作 用域的?至于引用計(jì)數(shù)來判斷對(duì)象是否可收集的,我可以會(huì)補(bǔ)充一個(gè)下面這個(gè)例子讓面試者分析一下obj1、obj2是否會(huì)被GC掉?
3.從gcroot開始搜索,搜索不到的對(duì)象。
分析:根對(duì)象查找、標(biāo)記已經(jīng)算是不錯(cuò)了,小于5%的人可以回答道這步,估計(jì)是引用計(jì)數(shù)的方式太“深入民心”了;究梢缘玫竭@個(gè)問題全部分?jǐn)?shù)。
PS:有面試者在這個(gè)問補(bǔ)充強(qiáng)引用、弱引用、軟引用、幻影引用區(qū)別等,不是我想問的答案,但可以加分。
4.從root搜索不到,而且經(jīng)過第一次標(biāo)記、清理后,仍然沒有復(fù)活的對(duì)象。
分析:我期待的答案。但是的確很少面試者會(huì)回答到這一點(diǎn),所以在我心中回答道第3點(diǎn)我就給全部分?jǐn)?shù)。
最后由一個(gè)問題:“做什么事情”,這個(gè)問發(fā)揮的空間就太大了,不同年代、不同收集器的動(dòng)作非常多。
1.刪除不使用的對(duì)象,騰出內(nèi)存空間。
分析:同問題2第一點(diǎn)。40%。
2.補(bǔ)充一些諸如停止其他線程執(zhí)行、運(yùn)行finalize等的說明。
分析:起碼把問題具體化了一些,如果像答案1那樣我很難在回答中找到話題繼續(xù)展開,大約占40%的人。
補(bǔ)充一點(diǎn)題外話,面試時(shí)我最怕遇到的回答就是“這個(gè)問題我說不上來,但是遇到的時(shí)候我上網(wǎng)搜一下能做出來”。做程序開發(fā)確實(shí)不是去鍛煉茴香豆的“茴”有幾 種寫法,不死記硬背我同意,我不會(huì)糾語法、單詞,但是多少你說個(gè)思路呀,要直接回答一個(gè)上網(wǎng)搜,我完全沒辦法從中獲取可以評(píng)價(jià)應(yīng)聘者的.信息,也很難從回答 中繼續(xù)發(fā)掘話題展開討論。建議大家盡量回答引向自己熟悉的,可討論的領(lǐng)域,展現(xiàn)給面試官最擅長的一面。
3.能說出諸如新生代做的是復(fù)制清理、from survivor、to survivor是干啥用的、老年代做的是標(biāo)記清理、標(biāo)記清理后碎片要不要整理、復(fù)制清理和標(biāo)記清理有有什么優(yōu)劣勢等。
分析:也是看過《深入JVM虛擬機(jī)》的基本都能回答道這個(gè)程度,其實(shí)到這個(gè)程度我已經(jīng)比較期待了。同樣小于10%。
4.除了3外,還能講清楚串行、并行(整理/不整理碎片)、CMS等搜集器可作用的年代、特點(diǎn)、優(yōu)劣勢,并且能說明控制/調(diào)整收集器選擇的方式。
分析:同上面2個(gè)問題的第四點(diǎn)。
最后介紹一下自己的背景,在一間不大不小的上市軟件公司擔(dān)任平臺(tái)架構(gòu)師,有3年左右的面試官經(jīng)驗(yàn),工作主要方向是大規(guī)模企業(yè)級(jí)應(yīng)用,參與過若干個(gè)億元級(jí)的項(xiàng)目的底層架構(gòu)工作。
如何面試java應(yīng)聘者(二)
1.前臺(tái)后臺(tái)都做嗎? 10分
這一般是我的第一個(gè)問題,超過90%的人會(huì)回答:"都做,后臺(tái)多一點(diǎn),前臺(tái)少一點(diǎn)"
這不是我想要的答案,鬼都知道程序員都要多少涉及一下前臺(tái),后臺(tái)更不用說了.
碰到過一個(gè)聰明人,他是這么回答的: 前臺(tái)js寫的比較熟練,html的框架模板也能搭建的非常整齊美觀,只是特效能力比較差
這個(gè)問題我不想過多討論,加分但不減分
2.事務(wù),什么是事務(wù),為何用事務(wù) 10分
大部分面試者,就會(huì)舉各種各樣的例子(比如銀行存錢,這個(gè)最多)來說明這個(gè)問題,其實(shí)他們都理解.
但這不是我想要的答案,我期望的答案只有一句:"保證數(shù)據(jù)的一致性和完整性" ,可惜只有5%左右的人答出來了
這個(gè)問題可以大概了解出面試者的分析能力,以及語言總結(jié)能力,還有他們對(duì)這個(gè)玩意的理解程度
答不出減分,舉例子不加分
3. 面向切面(AOP),原理是什么 10分
這個(gè)就是對(duì)技能的掌握程度了
大部分又是舉例子,什么找中介啊之類的, 其實(shí)就是來掩蓋他們懂一點(diǎn)實(shí)現(xiàn)邏輯,但是不知道源碼怎么實(shí)現(xiàn)的.
但還真是有學(xué)霸能把代理的原理講出來,非常好.
答不出減分,舉例子不加分,講出原理雙倍分.
4.兩個(gè)項(xiàng)目之間如何通信 10分
很基礎(chǔ)的問題,答上來就有分,說明你接觸或者了解過網(wǎng)絡(luò)
5.在上個(gè)問題基礎(chǔ)之上問,碰到亂碼怎么解決,utf-8和gbk可以直接轉(zhuǎn)換么 10分
大部分應(yīng)聘者到這里基本就開始胡扯了. 有說聲明字符串編碼接收的,有說改項(xiàng)目編碼的,各種各樣五花八門.
更有甚者,utf-8和gbk可以直接轉(zhuǎn)換...
直接說明了他們完全沒有遇到過此類問題,也并不了解編碼.
答不出不減分,胡扯減分,答對(duì)雙倍分.
6.簡述一項(xiàng)技術(shù)或設(shè)計(jì)模式的原理 20分
這個(gè)幾乎是送分的,但90%的人答不出.我很不解.
答不出減分,答出加分
【如何面試java應(yīng)聘者】相關(guān)文章:
作為hr如何面試應(yīng)聘者02-21
應(yīng)聘者如何郵件跟進(jìn)面試進(jìn)展08-23
無經(jīng)驗(yàn)應(yīng)聘者如何準(zhǔn)備面試01-03
招聘面試中如何找到應(yīng)聘者的弱點(diǎn)01-24
應(yīng)聘者如何防止在面試時(shí)被愚弄09-19
在面試時(shí)如何掀開應(yīng)聘者的底牌09-08