java面試官如何面試別人
java面試官如何面試別人(一)
java面試官的“面試心得”
在公司當技術面試官幾年間,從應屆生到工作十幾年的應聘者都遇到過。先表達一下我自己對面試的觀點:
1.筆試、面試去評價一個人肯定是不夠準確的,瞭解一個人最準確的方式就是“路遙知馬力,日久見人心”。通過一、二個小時內的做題、交流,只是沒有其他辦法下進行的無奈之舉,所以通過了面試不代表有多成功,沒通過也不代表有多失敗。
2.好的面試官本身交談的時候就不應當把自己一個居高臨下的角色上,應當把自己和應聘者當做兩個做技術的人平等的交流,把自己當作權威往往就會受到觀點的角度、語言表達、工作領域的慣性的制約。
3.好的考察題目則是大家能經常接觸,不同層次的人能有不同層次的答案,能從問題引申出後面繼續討論的話題。
舉個例子拋磚引玉,下面這個問題是我以前常問的,從應屆生到工作十幾年的人都問過:
引用
“地球人都知道,java有個東西叫垃圾收集器,它讓創建的對象不需要像c/cpp那樣delete、free掉,你能不能談談,gc是在什麼時候,對什麼東西,做了什麼事情?”
我自己分析一下這個問題,首先是“什麼時候”,不同層次的回答從低到高排列:
1.系統空閒的時候。
分析:這種回答大約佔30%,遇到的話一般我就會準備轉向別的話題,譬如算法、譬如ssh看看能否發掘一些他擅長的其他方面。
2.系統自身決定,不可預測的時間/調用()的時候。
分析:這種回答大約佔55%,大部分應屆生都能回答到這個答案,起碼不能算錯誤是吧,後續應當細分一下到底是語言表述導致答案太籠統,還是本身就只有這樣一個模糊的認識。
3.能説出新生代、老年代結構,能提出minor gc/full gc
分析:到了這個層次,基本上能説對gc運作有概念上的瞭解,譬如看過《深入jvm虛擬機》之類的。這部分不足10%。
4.能説明minorgc/full gc的觸發條件、oom的觸發條件,降低gc的調優的策略。
分析:列舉一些我期望的回答:eden滿了minor gc,升到老年代的對象大於老年代剩餘空間full gc,或者小於時被handlepromotionfailure參數強制full gc;gc與非gc時間耗時超過了gctimeratio的限制引發oom,調優諸如通過newratio控制新生代老年代比例,通過 maxtenuringthreshold控制進入老年前生存次數等……能回答道這個階段就會給我帶來比較高的期望了,當然面試的時候正常人都不會記得每 個參數的拼寫,我自己寫這段話的時候也是翻過手冊的。回答道這部分的小於2%。
ps:加起來不到100%,是因為有確實少數直接説不知道,或者直接拒絕回答的= =#
分析第二個問題:“對什麼東西”:
1.不使用的對象。
分析:相當於沒有回答,問題就是在問什麼對象才是“不使用的對象”。大約佔30%。
2.超出作用域的對象/引用計數為空的對象。
分析:這2個回答站了60%,相當高的比例,估計學校教java的時候老師就是這樣教的。第一個回答沒有解決我的疑問,gc到底怎麼判斷哪些對象在不在作 用域的?至於引用計數來判斷對象是否可收集的,我可以會補充一個下面這個例子讓面試者分析一下obj1、obj2是否會被gc掉?
class c{
publicobject x;
}
c obj1、obj2= new c();
obj1.x = obj2;
obj2.x = obj1;
obj1、obj2= null;
3.從gcroot開始搜索,搜索不到的對象。
分析:根對象查找、標記已經算是不錯了,小於5%的人可以回答道這步,估計是引用計數的方式太“深入民心”了。基本可以得到這個問題全部分數。
ps:有面試者在這個問補充強引用、弱引用、軟引用、幻影引用區別等,不是我想問的答案,但可以加分。
4.從root搜索不到,而且經過第一次標記、清理後,仍然沒有復活的對象。
分析:我期待的答案。但是的確很少面試者會回答到這一點,所以在我心中回答道第3點我就給全部分數。
最後由一個問題:“做什麼事情”,這個問發揮的空間就太大了,不同年代、不同收集器的動作非常多。
1.刪除不使用的對象,騰出內存空間。
分析:同問題2第一點。40%。
2.補充一些諸如停止其他線程執行、運行finalize等的説明。
分析:起碼把問題具體化了一些,如果像答案1那樣我很難在回答中找到話題繼續展開,大約佔40%的人。
補充一點題外話,面試時我最怕遇到的回答就是“這個問題我説不上來,但是遇到的時候我上網搜一下能做出來”。做程序開發確實不是去鍛鍊茴香豆的“茴”有幾 種寫法,不死記硬揹我同意,我不會糾語法、單詞,但是多少你説個思路呀,要直接回答一個上網搜,我完全沒辦法從中獲取可以評價應聘者的信息,也很難從回答 中繼續發掘話題展開討論。建議大家儘量回答引向自己熟悉的,可討論的領域,展現給面試官最擅長的一面。
3.能説出諸如新生代做的是複製清理、from survivor、to survivor是幹啥用的、老年代做的是標記清理、標記清理後碎片要不要整理、複製清理和標記清理有有什麼優劣勢等。
分析:也是看過《深入jvm虛擬機》的基本都能回答道這個程度,其實到這個程度我已經比較期待了。同樣小於10%。
4.除了3外,還能講清楚串行、並行(整理/不整理碎片)、cms等蒐集器可作用的年代、特點、優劣勢,並且能説明控制/調整收集器選擇的方式。
分析:同上面2個問題的第四點。
最後介紹一下自己的背景,在一間不大不小的上市軟件公司擔任平台架構師,有3年左右的面試官經驗,工作主要方向是大規模企業級應用,參與過若干個億元級的項目的底層架構工作。
java面試官如何面試別人(二)
1.前台後台都做嗎? 10分
這一般是我的第一個問題,超過90%的人會回答:"都做,後台多一點,前台少一點"
這不是我想要的答案,鬼都知道程序員都要多少涉及一下前台,後台更不用説了.
碰到過一個聰明人,他是這麼回答的: 前台js寫的比較熟練,html的框架模板也能搭建的非常整齊美觀,只是特效能力比較差
這個問題我不想過多討論,加分但不減分
2.事務,什麼是事務,為何用事務 10分
大部分面試者,就會舉各種各樣的例子(比如銀行存錢,這個最多)來説明這個問題,其實他們都理解.
但這不是我想要的答案,我期望的答案只有一句:"保證數據的一致性和完整性" ,可惜只有5%左右的人答出來了
這個問題可以大概瞭解出面試者的分析能力,以及語言總結能力,還有他們對這個玩意的理解程度
答不出減分,舉例子不加分
3. 面向切面(aop),原理是什麼 10分
這個就是對技能的掌握程度了
大部分又是舉例子,什麼找中介啊之類的, 其實就是來掩蓋他們懂一點實現邏輯,但是不知道源碼怎麼實現的.
但還真是有學霸能把代理的原理講出來,非常好.
答不出減分,舉例子不加分,講出原理雙倍分.
4.兩個項目之間如何通信 10分
很基礎的問題,答上來就有分,説明你接觸或者瞭解過網絡
5.在上個問題基礎之上問,碰到亂碼怎麼解決,utf-8和gbk可以直接轉換麼 10分
大部分應聘者到這裏基本就開始胡扯了. 有説聲明字符串編碼接收的,有説改項目編碼的,各種各樣五花八門.
更有甚者,utf-8和gbk可以直接轉換...
直接説明了他們完全沒有遇到過此類問題,也並不瞭解編碼.
答不出不減分,胡扯減分,答對雙倍分.
6.簡述一項技術或設計模式的原理 20分
這個幾乎是送分的,但90%的人答不出.我很不解.
答不出減分,答出加分
-
應屆生如何應對面試問題
面試是通過當面交談、問答、場景考查等方法對應試者進行考核的一種方式,它是一個快速表達、傳輸和接收的過程。那關於應屆生應對面試問題的方法有哪些呢?下面是本站小編為你整理的應屆生應對面試問題的一些技巧,希望對你有幫助。應屆生怎樣回答面試問題(1)問題:你...
-
初入職場如何處理人際關係
處理好人際關係對於初入職場的你來説,是相當重要的。下面是由本站小編分享的初入職場處理好人際關係的方法,希望對你有用。初入職場處理好人際關係的方法定律一:在職場生涯中,你一定要學會尊重與服從。雲南初入職場的夥伴們應該如何處理好人際關係?尊重上司,學會服...
-
關於就業簡歷面試的指南
求職面試既是基礎知識和專業技能的比試,更是智慧與謀略的較量。那關於就業簡歷面試的一些指南有什麼呢?下面是本站小編為你整理的就業簡歷面試的一些指南,希望對你有幫助。就業簡歷面試的指南簡歷:放棄廢話太多學生的簡歷最大問題就是廢話太多。所謂"廢話就是指...
-
電話邀約面試實用技巧介紹
要找一份好工作除了準備好簡歷之外,更重要的是要掌握面試技巧。下面是由本站小編分享的電話邀約面試技巧,希望對你有用。電話面試的準備工作1、在電話溝通之前做好相關崗位和公司資料的準備。2、將應聘者的簡歷詳細看過並標出需進一步瞭解或確認的關鍵信息。3、...