跳槽必看:程式猿職場心理學, 教你三進三出“斬”HR拿offer!

Java高階開發發表於2018-04-15

摘要: 今天主要涉及到的是 HR 在面試時有哪些套路,這樣可以見招拆招,斬獲 offer!

這裡寫圖片描述
今天主要涉及到的是 HR 在面試時有哪些套路,這樣可以見招拆招,斬獲 offer!

主要包括以下內容:

一、程式設計師面試過程中,面試官想要從 “ 自我介紹 “ 獲得什麼資訊?

二、如何去提煉簡歷中的精華?如何在溝通中體現你的軟技能?

三、如何去解釋簡歷中的瑕疵?

四、HR 通常喜歡問哪些與技術無關的問題?這些問題背後代表了什麼?如何應對?

一、面試官想要從 “ 自我介紹 “ 獲得什麼資訊

自我介紹是面試中必不可少卻也非常重要的一個環節,想要在這個環節中達到最好的效果,首先你要知道面試官想要通過你的自我介紹瞭解到那些資訊

先來說說 HR 讓候選人面試的時候先做 “ 自我介紹 “ 究竟是在聽什麼。

很多候選人都還沒有做好推銷自己的準備,可能你會覺得我投遞了一份完美的簡歷,準備好了一套很帥很乾淨的裝備,但是,只要你無法證明你是這份工作的最佳人選,你之前的努力就會變成竹籃打水。

“自我介紹 “ 在 HR 招聘領域屬於引入式問題,通常會在面試開始時說 “ 請你在三分鐘內做一個自我介紹。”

你只有全面地分析自己,真正瞭解自己,你才能夠在面試中成功營銷自己。把你最好的一面,和麵試崗位最契合的部分,或者最有成就的專案突出介紹。如果你的面試平淡無奇沒有亮點會削弱面試官對你的興趣。

請大家記住以下幾個問題,並記錄下你的答案,自我介紹中提到這些內容都是會讓面試官在最短時間認識你。

我最突出的技能是什麼;

我在哪方面的知識掌握是最全面的;

我性格上最大的優勢是什麼;

我最擅長的事情是什麼;

我有哪些成就和貢獻;

除此之外 HR 還想從中聽到候選人是否能客觀地評估自己,自己的描述和簡歷上是否有出入,另外還在考核你的語言組織和表達能力,是否自信、流暢,有條理地介紹自己的工作經驗。他們又不看論文,他們更想做的是和候選人一對一口頭交流。

自我介紹中非常忌諱的有幾點需要注意

  1. 表達含糊不清,無法體現具體的成就

如果你能夠有不錯的總結能力可以把工作經歷整合成一篇優秀的演講稿。但是你的回答提到了過多和公司或者和工作無關的內容,這個就會扣分。

你說的東西並不是 HR 想聽的內容,他想聽的你又沒有提到,場面就會十分尷尬。有些不耐煩的面試官甚至會直接打斷你的自我介紹切入問他感興趣的內容,這樣的行為在你眼裡還會覺得這個 HR 怎麼這麼不友好。

  1. 缺乏熱情

如果你面試的過程絲毫沒有興趣,提不起熱情,HR 會認為你對這個崗位的興趣度非常低。

  1. 過於緊張

很多候選人在 coding 的時候可以把鍵盤敲出火花,但是一面對漂亮 HR 就開始緊張結巴。不僅你沒辦法好好面試,HR 可能也會草率地早早結束面試。

  1. 耍小聰明

有些候選人自認為很聰明,會優先發問 HR 問題 “ 你到底想知道什麼 “,” 你希望我談談哪個方面的問題 “ 等等,面試官無非要了解的就是你的工作經驗、你的優勢、教育背景。

不論 HR 問什麼問題,最終不會逃出這幾方面資訊。何不自己先整理好之後給出不錯的回答呢。

  1. 缺乏眼神溝通

HR 會認為你不夠自信,而且回答問題眼神閃爍很有可能質疑內容的真實性。如果 HR 長的美麗,那還不多看兩眼?

總結一下,在最短的時間說出你最大的優勢,並且具有邏輯性,切忌一直用額,啊,然後這些詞,最好提前準備下,最好可以背出來。

二、如何去提煉簡歷中的精華

  1. S.T.A.R 法則

情境 (situation)、任務 (task)、行動 (action)、結果 (result)

這裡為大家介紹一個很多 HR 包括面試官在面試中運用的評估原則。也就是在什麼情況下,安排了什麼樣的任務採取了什麼樣的行動,最後的結果如何,這同樣是我們在寫簡歷的時候經常使用的方式。

舉個例子,100offer 平臺上有位候選人的簡歷非常典型按照這個原則來寫,我們來看一下

1)背景:

為了解決農村 X 寶各個業務線中統一規則的收攏,方便各業務線對規則的引用和修改,並提供運營可配置的簡易頁面,輔助開發完成業務規則的定製配置,解放開發工作力,加快業務迭代等目的。特此開發了一套針對規則的底層服務框架。

2)內容:

規則管理系統:主要負責規則的增刪改查等基本功能的配置,暴漏 RPC 服務介面;

規則引擎系統:主要負責規則的計算、執行緒池的分配、引擎模板等內容;

規則治理中心:主要負責規則的視覺化介面編寫、規則的條件翻譯配置等內容;

3)執行情況:

叢集 QPS 為 1080,RT 為 30ms,對接業務 9 個,建立的執行規則 416 個。各個系統中分別設計了很多複雜設計點,部署獨立,引用關聯。

這是非常典型的 S.T.A.R 寫法。這是一個什麼專案,為什麼要做這個專案,候選人在其中做了哪些工作,最後專案執行情況如何,面試官一目瞭然。

這樣的專案經歷可以說非常清晰。但這個是簡歷內容,你不可能在口述的時候一字不差,所以在這裡面我們需要做點文章,讓你在口述的時候一切都是這麼順其自然但是其實是精心設計過的。

我們需要在描述自己工作內容部分增加一些當時自己遇到的困難,碰到的技術難題。

比如你可以這麼說:

” 當時在做某個模組的時候碰到了一個什麼樣的問題,之前沒有經歷過,感覺很無力。大家都在加班忙自己的工作內容,沒時間來協助我解決這個問題。專案又非常趕,自己就只能硬著頭皮上(或者類似需要跨部門溝通,推進專案程式,沒人配合此類問題)”

stop!到此我們做一個鋪墊,之後你需要說的是如何解決這個問題 ,不論是通過別人的協助,還是自己獨立解決,成功與否都要說出來。

比如:

” 那時候自己從網上搜了很多資料,也一直在嘗試。有時候實在自己搞不明白就會拉著同事一起吃中飯或者晚飯,利用大家空閒時間聊聊碰到的問題,看看他們有沒有好的解決思路。最後呢是通過同事提供的思路和網上的一些方法,我自己嘗試了幾次,把這個問題解決了。”

OK,到此我們向面試官訴說了碰到的問題,以及自己如何解決這個問題,是那麼的自然順暢簡直堪稱完美。但是你以為結束了嗎?並沒有!

還有最後一步也是很重要的一步,也是大部分人都不會關注的一步! 那就是覆盤。

你可以接著上面解決問題的話題接著往下說:

” 那個專案結束之後,自己去查了一下當時碰到的困難,在什麼狀態下會再次觸發那個問題,自己去了解了其中的原理,覺得可以通過另外一種甚至多種方式解決,最終效果都一樣,有些方式效率會更高,覺得挺有意思的,現在再碰到肯定不怕了,現在想想還是很有成就感的。”

這樣的專案介紹讓 HR 感受到你當時碰到了一個無比艱難的問題,但是自己一系列的行動把這個問題給解決了。解決了還不夠,自己還舉一反三有意外收穫。那就是加分項!

相比面試官問一句你答一句,擠牙膏式的面試和描述非常簡單的面試哪個效果會更好大家一目瞭然。與此同時你還體現了你的自學能力、抗壓能力、責任心。

  1. 結構化描述

面試是一個很廢心的工作,面試官從早到晚真的很累,當你在做介紹的時候可以用非常清晰的結構介紹你的工作內容,面試官聽了很舒服,簡潔明瞭。

可以讓 HR 在短時間抓住你的優勢,並且做記錄詢問針對性問題,相比這一天其他的面試這個面試印象最為深刻!

如果你在面試中報賬式的介紹而且邏輯很混亂,面試官還要從你的描述中做閱讀理解,仔細聽還要提煉重點。

比如:你說你很聰明,我在 ACM 比賽獲獎,堅持一年每天早上第一個到公司,還組織過技術學習委員會。

HR 會覺得 … 資訊量有點亂,他會需要記錄之後重新梳理。

如果你能提前就把資訊梳理好,會比之前那種描述更加具有結構化,更加清晰。

比如:我個人比較聰明,ACM 有拿過獎項。另外還很勤勞,一年時間每天堅持第一個到公司。另外還有一定的組織能力,公司的技術培訓都是我來組織的。

HR 記錄的內容很有可能是:有三點優勢,聰明、勤勞、組織能力強,每一項都有一個事例來證明。
這裡寫圖片描述

  1. 挖掘有價值的內容

除了工作經歷這個最重要的內容以外,簡歷我們還要自己先挖掘有價值的內容,比如學歷。如果你是 985/211,千萬不要吝嗇從你嘴巴中說出你的學校,如果還是計算機專業,這絕對是你的加分項。

除了學歷之外還有公司,有些公司已經是在網際網路行業中耳熟能詳的,但是有些公司名不見經傳,非常低調但在行業中做出了很不錯的成績。

這個時候你就需要介紹一下公司核心產品在行業中是怎麼樣的一個地位,特別是同類比較知名的產品分別有誰。這樣能讓 HR 馬上知道有可以對標的公司產品,就會很容易理解。

有些人會過多闡述個人簡介這個部分。現在很多人的簡歷寫得很有性格,很獨特,但其實這些內容並非簡歷的重點。除了你有獲得過某賽事的獎項和公司內部評定的獎項可以著重介紹一下,其他個人性格、愛好、業餘時間會做什麼,簡單提一下即可。

不需要花很長的時間來描述這些內容。HR 也不會因為你喜歡游泳或者跑步而決定 offer 你,對吧。

那以上便是教大家如何在介紹專案和自我介紹的時候把簡歷中的精華提煉出來,並用適當的方式描述給面試官,大家可以看看自己簡歷是不是有什麼可以修改或者補充的,讓自己有更好的內容可以說。

三、如何去解釋簡歷中的瑕疵?

1. 頻繁跳槽

現在網際網路行業中 1 年 1 跳的頻率都已經是相對穩定的,可如果你在 1 年內發生過多次跳槽,HR 一定會質問你,能說說為什麼 1 年中有多次跳槽的行為嗎,HR 會懷疑你的穩定性。

你如果不說出個所以然,我怎麼敢錄用你,怎麼證明你能在加入了我們公司之後能穩定呢?

首先我們再一次強烈呼籲每一位候選人在對自己的跳槽決定要負責,要考慮全面,考慮清楚。不建議在簡歷上作假,合併就職公司時間。

有可能你的簡歷穩定性看起來很好,但是其實有所隱瞞。每一段離職都會暴露出很多問題,你不敢直面這些問題,到最後會讓你無槽可跳。

如果你說第一家是因為和團隊不合,第二家公司是因為公司距離太遠,第三家公司走是因為錢不夠,HR 會覺得,團隊不合,會不會代表你無法融入公司文化,也沒辦法好好和同事相處?

公司距離太遠,那你在決定接這個 offer 之前不會自己查好路線嗎?上了這麼久的班才覺得公司距離太遠嗎?錢沒給到位,沒給到位你就接那個 offer 了?這樣輕易做出跳槽決定是不是對自己太不負責了,也對公司不負責。

所以 100offer 建議這種問題最好在面試前就準備好如何回答,且回答的方向應該是比較正面的。切記不要在面試的時候各種吐槽你上一家公司,和上一任老闆。

哪怕你之前在公司中發生過激烈的交涉,有時要學會委婉表達,但切勿隨意甩鍋給你的前任老大。

一般我會建議候選人這麼回答這個問題:

” 之前的老大,技術能力的確很不錯,但是他不太願意分享。平時我們組織技術分享會,他也只是偶爾過來聽聽從未擔任過講師。”

當然這不是標準答案,但是記住這類問題的回答思路不要甩鍋,不要吐槽,要客觀描述事實,少用一些很刺耳的否定詞語。避免 HR 面試完給你打上了負能量的標籤。

  1. 空窗期

對於有些候選人選擇了裸辭,辭職之後不論是選擇去旅行來放鬆自己還是處理家務事都是沒問題的。但是你也要理解 HR 從他的視角中看到這些事需要詢問清楚。

或者有些候選人會選擇辭職目的為了轉行,自己在家閉門修煉啃書帶訓練花了 3 個月時間甚至更多。

HR 也不是苛刻的要死,非要你每段經歷都 100% 無縫銜接上,那麼這段時間空白期為什麼沒有銜接上?都是做了什麼事?說明白了就 OK 了。

  1. 個人創業

還有種情況就是辭職和朋友合夥創業。這裡面有一個小細節,就是假設你之前的背景很不錯,優秀網際網路 /IT 公司的資深程式設計師,被好朋友的商業模式吸引,你的 title 突然搖身一變成為了 “技術負責人” or “CTO”,你一定要平常心去對待這個問題。

並不是你的技術能力真的達到了這個水平,而是你算是公司成立的第一位程式設計師,這個 title 不給你,給誰呢?所以這裡要和大家說明,並不是當你 title 成為了 CTO 之後,下一份公司也一定要看 CTO 的崗位或者技術經理的崗位。

迴歸市場之後你還是原先那個你。別讓 HR 覺得你創業過心就浮起來,如果顯露出了不夠謙卑的態度,人家這麼小的廟還能容納你這尊菩薩嗎,真的厲害你繼續創業唄為啥還要找工作呢?

其實 HR 對你創業的經歷更有興趣詢問的是你當時為什麼想創業,是不是有好的想法還會辭職去創業,你的穩定性如何,你能在我們這裡做多久,你會熱愛我們這份工作嗎?所以知道 HR 在想什麼之後,你知道怎麼回答 HR 了麼?

四、HR 通常喜歡問哪些與技術無關的問題?這些問題背後代表了什麼?如何應對?

首先這個行業中懂技術的 HR 佔少數,自然 HR 關注的點一定是技術以外的內容。面試中排在最優先的問題稱之為 “行為式問題”,就是要問到候選人蔘與過一些具體活動的事例,來了解這個人做事的一些特徵,他的能力水平和素質狀況。

那這一點在之前一個問題中已經教大家利用 S.T.A.R. 方式來整理自己過往經歷並且在面試中有結構地描述給面試官。除了這類問題以外 100offer 來教大家識別一下 HR 其他問題中的套路。

  1. 虛擬情景問題

HR 在問這類問題的背景很有可能是公司或者部門現在正在碰到的,HR 會從這類問題中考察候選人在未來實際操作中會怎麼做。很有可能是看你之前如何處理,

這類方式是否適合在未來公司適用。會利用前面提到的 S.T.A.R 的原則來考察你的回答是否符合他們的預期。

假設你面試的公司目前正處在創業初期,因為方向的不確定性導致專案經常變更,HR 可能會問一些 “ 你是喜歡有既定方向去做事還是可以根據實際情況隨機應變?”

這樣他能瞭解你的內心更偏向哪一類的工作模式,根據你的回答他能知道你在面對專案變更的時候你的心態是接受還是抗拒的。

這類問題的回答建議從你內心出發,儘量不要說自己違心的話,因為這樣很有可能你為了想面試通過欺騙自己,等到真實工作的時候發現情況和自己預期的完全兩樣,工作出現負面情緒最終短時間離職。

  1. 壓力測試問題

壓力測試問題通常是用來對應一些抗壓能力比較高的崗位。壓力測試是面試官用來刺探你,考驗你在被打壓、緊張、不自在的狀態下會如何作答。

此時往往人類的自我保護意識會非常明顯,所以真實的一面一般都會顯露。同時還會和動機式問題結合在一起,HR 特別喜歡這樣的組合拳,因為效果的確很好。

什麼情況下會問出壓力性問題呢。對你過去的某一個類事件進行追問(行為面試法 BEI)

比如,在問過你最有成就感的專案回答很不錯的時候(之前已經教過大家了),HR 會問,可以談談最失敗的一個專案或者經歷嗎?這類問題通常都是以 “最難忘 / 最成功 / 最失敗….. 的方式提問”,隨後不斷追問細節。

這個方式會讓候選人非常不自在,感覺受到了嚴刑逼供式的拷問,但是往往在這樣的情況下是可以測試出你是否有說謊。因為一般來說一個謊言需要 3-5 句話來圓謊,如果你編造了一個故事,說的越多,你的漏洞就越多。

還有一種情況會使用壓力面試。你的簡歷很優秀,一般的面試官 hold 不住你,覺得問了一些問題都難不倒你,可能會有壓力測試來看看你的反映。

實際上他們是想控制這個面試節奏,不被你帶跑。

有些候選人在面試完之後給我們顧問的反饋是,哎呀那家公司的面試官好像不太好相處啊,整個面試都是板著臉,眉頭緊鎖。我也不知道他在想什麼,感覺自己面試發揮的不是很好。

比較極端的就是,因為面試官問的技術問題和候選人直接在現場懟起來,結果可想而知。

碰到這類情況我們怎麼分辨呢?其實在我看來沒必要想明白什麼是壓力測試什麼不是。兵來將擋水來土掩,用平常心面對整個面試,回答問題的狀態不急不慢有條理。

但要說這類問題有什麼建議,其實還是有的,就是當你感覺到某個問題是你很難招架或者不太合乎常理的時候,你可以當即反問回去。

舉個例子,當面試官說:

“我們部門最近專案要趕進度,你來的話會經常加班”

這時候如果真的是你不能接受加班,那就實話實說。不排除這是一個壓力測試,所以你可以馬上反問:

“會經常加班嗎?公司經常加班的強度頻率如何?”

當你這麼一問,你也能知道公司究竟是怎麼加班的?是趕專案還是硬性規定?這樣面試官在接收你這個問題的時候會開始解釋他定義的加班強度是怎麼樣的,你聽清楚之後可以根據自身情況判斷是否可以接受,就能巧妙化解這個問題。

最後你還可以這麼說,面試官聽到之後就可以做出相應判斷了。

“這個加班方面自己有一些想法,趕專案加班屬於正常,自己也非常支援希望看到專案早點上線,但是如果每天的工作可以按時完成,這樣還需要加班,這樣不太合適。”

另外還有類問題是:

“你之前和老大和同事關係都不錯,公司福利待遇也不錯,那你為什麼要走呢?是不是你覺得錢太少了”

這是 HR 通過動機和壓力的結合型問法。他們想確認什麼?第一,你真實的離職原因,同時用薪資福利待遇這個來測試是否是你最重要的原因之一,或者也不是薪資方面的問題,還是另有原因。

我會建議大家在離職動機方面首先自己要很清楚,不管你是因為和老大吵架一氣之下要走,還是因為公司不允許辦公室戀情而成全另一半,你都要找到一個 HR 認為合理的理由。

我總結了幾點大家可以選擇回答的:

1)如實回答。面試是需要非常真誠的,如果你欺騙了面試官,當入職前背景調查查出問題,那抱歉,你可能就會因為不誠信而被用人公司放棄錄用。

2)公司的產品專案調整了方向,後續這個方向和自己的規劃有出入。(不能說技術有出入。如果說後續會用一些其他技術,因為這點你覺得有出入,那潛臺詞就是你不想學習新技術咯?)

3)自己有很多想法沒辦法得到實現,團隊提供的空間太小了,沒施展空間(想要換個環境晉升,要飛得更高)

4)根據自身情況回答(搬了新家,公司離新家太遠無法接受,或者猶豫個人家庭原因離開,類似老婆要生了,想請假去陪產。但是公司不批假,無奈辭職。)

壓力測試還有一個作用,用於測試候選人所說是否真實。這個就要看各位候選人自己的回答是否夾雜水分了。

  1. 應變性問題

“井蓋為什麼是圓的?” 這種問題是沒有標準答案的,他更關心的是你為什麼會這麼回答,告訴我你的理由是什麼。那麼怎麼判斷這類是應變性問題呢?

這類問題你在思考過程中會發現有且不止一個可能性:因為下水道是圓的,所以井蓋是圓的;因為圓形可以滾,方便搬運;因為圓的好看 … 等等。

所以這類問題要理清自己回答的邏輯,說出你的回答並且用你的邏輯去支撐。這樣 HR 會知道你是從什麼角度看待這個問題。

綜上這幾類問題是 HR 比較常見會詢問的:行為面試法、虛擬場景、壓力測試、應變性問題。

4. 其他幾個比較常見的問題(附上回答思路)

Q:X 年內的規劃是什麼 / 自己的職業規劃是什麼 / 半年後你覺得你能做出怎樣的成績?

HR 考察重點:公司的發展目標與你個人長期目標是否一致?

有些候選人尋求急速發展的空間和平臺,但是公司是一個非常穩定的狀態,那怎麼給你這樣的空間呢?或者你在加入之後晉升獲得了更不錯的 title 及薪資,你的工作目標和初衷是否已經變得完全不同了?

A:這類問題回答如果只是把你的工作內容複述一遍,是無法打動 HR 的,這樣的答案太籠統,很多人這麼回答就會變得毫無新意。

首先這個問題會有一個時間跨度,需要了解這合理的時間跨度中你的發展會如何。比如做開發的,一般能力達到了,且涉及到了一些比較不錯的核心專案,順利的話一般 1-2 年是可以有一個晉升的過程,你可以這樣說:

” 首先還是做好本職工作,另外自己的優勢會在大資料方向,也是自己感興趣的內容,公司在之後的發展中大資料對業務支撐會起到很重要的作用。自己通過實戰結合理論個人是想在以後的工作中承擔更多的職能,想負責管理一個團隊。”

你有野心,想成為 leader,看好公司發展同時自己發展和公司能保持平行,且為公司業務出一份力,這些都是你的目標。這樣就給 HR 傳遞了一個非常積極且有目標性的訊號。

Q:你最失敗的經歷 / 最丟臉的事 / 最大的缺點是什麼?

HR 考察重點:這類問題都是需要將負能量轉化成積極的答案,如果你順著答案只說了不好的資訊,那很有可能讓 HR 繼續追問如果碰到同樣的情況你是不是會有同樣的處理方式——也就是離職。這樣你就被帶到坑裡去了。

A:你需要簡單介紹一下一個案例,告訴面試官你碰到了什麼樣的情況,當時自己的想法和狀態。話鋒一轉就要說自己通過什麼樣的方式做出瞭如何的改變,讓 HR 知道你的心態和行為都從負能量轉化為了正能量。

面試的方法是瞭解的差不多了,但是工作是個看硬本事的地方,沒有好的技術,你把面試官忽悠的天花亂墜也是沒有任何作用的,就算僥倖拿到了offer,正式工作的時候還是被打回原形。

那麼作為一名Java程式設計師,應該掌握那些基本技能呢?以下是我根據自己十餘年工作經驗總結出來的一下知識點,相信這些技術你都能掌握,並且熟練使用知道那些底層原理的時候,絕對少不了你的offer。

基本語法

這包括static、final、transient等關鍵字的作用,foreach迴圈的原理等等。今天面試我問你static關鍵字有哪些作用,如果你答出static修飾變數、修飾方法我會認為你合格,答出靜態塊,我會認為你不錯,答出靜態內部類我會認為你很好,答出靜態導包我會對你很滿意,因為能看出你非常熱衷研究技術。

集合

非常重要,也是必問的內容。基本上就是List、Map、Set,問的是各種實現類的底層實現原理,實現類的優缺點。

集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的實現原理,能流利作答,當然能掌握CopyOnWrite容器和Queue是再好不過的了。另外多說一句,ConcurrentHashMap的問題在面試中問得特別多,大概是因為這個類可以衍生出非常多的問題,關於ConcurrentHashMap,我給網友朋友們提供三點回答或者是研究方向:

ConcurrentHashMap的鎖分段技術

ConcurrentHashMap的讀是否要加鎖,為什麼

ConcurrentHashMap的迭代器是強一致性的迭代器還是弱一致性的迭代器

設計模式

當然我們們不能這麼功利,為了面試而學習,設計模式在工作中還是非常重要、非常有用的,23種設計模式中重點研究常用的十來種就可以了,面試中關於設計模式的問答主要是三個方向:

你的專案中用到了哪些設計模式,如何使用

知道常用設計模式的優缺點

能畫出常用設計模式的UML圖

多執行緒

這也是必問的一塊了。因為三年工作經驗,所以基本上不會再問你怎麼實現多執行緒了,會問得深入一些比如說Thread和Runnable的區別和聯絡、多次start一個執行緒會怎麼樣、執行緒有哪些狀態。當然這只是最基本的,出乎意料地,幾次面試幾乎都被同時問到了一個問題,問法不盡相同,總結起來是這麼一個意思:

假如有Thread1、Thread2、ThreaD3、Thread4四條執行緒分別統計C、D、E、F四個盤的大小,所有執行緒都統計完畢交給Thread5執行緒去做彙總,應當如何實現?

JDK原始碼

要想拿高工資,JDK原始碼不可不讀。上面的內容可能還和具體場景聯絡起來,JDK原始碼就是實打實地看你平時是不是愛鑽研了。面試過程中被問了不少JDK原始碼的問題,其中最刁鑽的一個問了String的hashCode()方法是怎麼實現的,幸好平時String原始碼看得多,答了個大概。JDK原始碼其實沒什麼好總結的,純粹看個人,總結一下比較重要的原始碼:

List、Map、Set實現類的原始碼

ReentrantLock、AQS的原始碼

AtomicInteger的實現原理,主要能說清楚CAS機制並且AtomicInteger是如何利用CAS機制實現的

執行緒池的實現原理

Object類中的方法以及每個方法的作用

框架

老生常談,面試必問的東西。一般來說會問你一下你們專案中使用的框架,然後給你一些場景問你用框架怎麼做,比如我想要在Spring初始化bean的時候做一些事情該怎麼做、想要在bean銷燬的時候做一些事情該怎麼做、MyBatis中$和#的區別等等,這些都比較實際了,平時積累得好、有多學習框架的使用細節自然都不成問題。

資料庫

資料庫十有八九也都會問到。一些基本的像union和union all的區別、left join、幾種索引及其區別就不談了,比較重要的就是資料庫效能的優化,如果對於資料庫的效能優化一竅不通,那麼有時間,還是建議你在面試前花一兩天專門把SQL基礎和SQL優化的內容準備一下。

不過資料庫倒是不用擔心,一家公司往往有很多部門,如果你對資料庫不熟悉而基本技術又非常好,九成都是會要你的,估計會先把你放到對資料庫使用不是要求非常高的部門鍛鍊一下。

資料結構和演算法分析

資料結構和演算法分析,對於一名程式設計師來說,會比不會好而且在工作中絕對能派上用場。陣列、連結串列是基礎,棧和佇列深入一些但也不難,樹挺重要的,比較重要的樹AVL樹、紅黑樹,可以不瞭解它們的具體實現,但是要知道什麼是二叉查詢樹、什麼是平衡樹,AVL樹和紅黑樹的區別。記得某次面試,某個面試官和我聊到了資料庫的索引,他問我:

你知道索引使用的是哪種資料結構實現嗎?

Java虛擬機器

談談Java虛擬機器中比較重要的內容:

Java虛擬機器的記憶體佈局

GC演算法及幾種垃圾收集器

類載入機制,也就是雙親委派模型

Java記憶體模型

happens-before規則

volatile關鍵字使用規則

這還只是Java程式設計師的最基本要求,你不可能在基礎的程式設計師上面幹一輩子所以我們只會慢慢的往上走,下面是我收藏的一個系統的學習圖譜,如果需要可以加入我的Java架構交流學習群:697-57-97-51,裡面會分享一些資深架構師錄製的視訊錄影:有Spring,MyBatis,Netty原始碼分析,高併發、高效能、分散式、微服務架構的原理,JVM效能優化這些成為架構師必備的知識體系。還能領取免費的學習資源,目前受益良多:

以下是我收藏的一個系統學習的圖譜,一共六個專題:
這裡寫圖片描述

併發程式設計專題

這裡寫圖片描述
原始碼分析專題

這裡寫圖片描述
這裡寫圖片描述
效能優化團隊協作專題

這裡寫圖片描述
微服務架構專題

這裡寫圖片描述
專案實戰專題

這裡寫圖片描述
分散式架構專題

總結:

以上就是我今天所要書寫的內容,希望以上的內容可以幫助到正在默默艱辛,遇到瓶疾且不知道怎麼辦的Java程式設計師們,我能幫你的只有這麼多了,要是想深入學習、系統掌握的,可以加我的架構群:697579751, 裡面會分享一些資深架構師錄製的視訊錄影:有Spring,MyBatis,Netty原始碼分析,高併發、高效能、分散式、微服務架構的原理,JVM效能優化這些成為架構師必備的知識體系。希望這些知識點可以幫助在這個行業發展的朋友和夥伴們,在論壇部落格等地方少花些時間找資料,把有限的時間,真正花在學習上。

相關文章