6天面試10家,已經拿到offer,Java程序員的面試總結分享

前言:

最近一朋友離了職後,找工作前前後後面試了6天,一共10家公司,我找他分享出面試過程及經驗,希望能對各位正在面試中或者準備面試的童鞋有所幫助,以下面試企業爲了保密不說實際名稱。以下爲第一人稱。

 

 

第一家公司:簡稱A 

由於剛剛開始面試選擇試試水,就在智聯上投遞了一寫公司,這家就是第一個讓我去面試的公司。這家企業是新三板上市的一家公司,大約有700人那樣。面試時間定在早上10點,去了以後給了一份面試題

內容如下:

一、Spring

1.請說明spring實現AOP的兩種方式及其區別。

2.請說明Spring生命週期中的可擴展接口及其定義的方法,如FactoryBean.

3.請簡述Spring Cloud的名個組件及其功能。

二、MyBatis

4.請說明MyBatis中DAO接口的實現機制。

5.現在需要增加一個計算SQL執行時間的插件,請簡述該插件的實現原理與方式。

三、前端

6.請簡述Prototype的應用場景及其基本用法。

7.請簡述Promise的應用場景及基本用法。

四、分佈式及中間件

8.請簡述CAP理論。

9.請簡述Redis 2.X實現高可用的方法及如何水平擴展。

10.請列舉常用的消息中間件及其特點。

11.請簡述HBase的基本概念、應用場景及其與關係型數據庫的區別。

五、Java

12.請簡述Sring.intern()方法。

13.請簡述jdk的類加載機制、ClassLoader及雙親委派模型。

14.請說明Executor、ExecutorService、Executors、ThreadPoolExecutor之間的關係。

15.請簡述Java併發編程中,鎖的幾種類型。

16.請說明CountDownLatch、CyclicBarrier、Semaphore的適用場景。

17.請說明ConcurrentHashMap在1.7 和1.8中實現的不同之處。

18.請簡述volatile關鍵字的含義、JMM內存模型及happens-before原則。

六、設計

19.請簡述Observer模式及其在JDK中的應用。

20.請給出一個分佈式網絡爬蟲的設計架構,支持每天G級的爬取數據量。

然後hr一會告訴我筆試不過,無法進入面試。這個還是很難受的。因爲在面試過程中不管如何都會和面試官聊下,起碼知道哪些題不對,也可能是我自己準備不充分導致,第一次面試就這樣草草結束。

第二家公司:簡稱B

這家公司規模很小,大約就50人吧,是boss直聘上一個hr主動聯繫讓去試試,所以就去,對於這家企業還是信心滿滿的,想找點自信,結果恰恰相反。

去了以後也沒面試題,寫了一個登記之後hr就讓我和面試官聊天,首先讓我把項目流程介紹一下,我說了以後。他說我看了你的github代碼感覺還不錯,你給我show一段。有點懵逼,猛下這麼說出乎我的意料,我就說寫個2分查找吧,就隨手寫了一個但是我竟然犯了一個致命錯誤,返回值有些問題寫成null,但是明顯我採用的是int而不是integer。

然後接着問我web前端遇到過什麼問題沒有,我說平時這方面遇到問題倒不是太多,他說好你給我寫個過濾器,這個實在是沒法寫出來,平時可能都是電腦寫,足以說明我準備的確實不充分,後來又讓我寫個sql,雖然最終寫出來了但是時間過久。然後聊點其他的就說你回去吧,後續通知,我就知道這次面試再次掛了。心情低落極點了。

第三家公司:簡稱C

這家企業規模還不錯,有上千人吧,環境也可以,是拉鉤上看到的一家企業。也是10點面試,去了給了一個面試題,一份心理測試題,面試題難度還是有點的,10道選擇題考察知識多少final,static,do which等知識難度倒是一般,後面是大題,比如寫出ssh的配置 ,數據庫連接池配置,thread和runnable是什麼區別,寫幾種單利模式,Linux一些查找命令,一個複雜的sql語句。Linux我不太熟悉,沒寫出來,ssh配置這個平時看的也是,寫的很一般,數據庫連接池配置寫的也一般。

然後是心理測試,這個測試題非常多而且考察東西也多,包括一些國外的名人問他幹嘛的,設計怎麼讓北京三環不堵車,還有怎麼設計類似摩托車但是不耗油等等吧,答完題大約11點半,然後第一面竟然是hr,聊了還不少,關於爲啥跳槽,發展方向,以前做啥等。第二面大約就幾分鐘,問我會Linux不,我說不怎麼會,以前你幹嘛的然後就說你回去吧我們後續通知。基本也掛了。

第四家公司:簡稱D

從第四家公司開始變得順利,連續過了6家公司。經過前3家失敗,我回去總結下,把基礎知識複習一下,避免死在這樣的問題上。這家企業大約300人,一家傳統的公司,主要大數據方面的。去了也是一份面試題,這個面試題對我來說比較簡單,選擇題就不題了,大題是三個一個問什麼是ioc和aop,一個是設計模式,一個是sql。

大約半小時就寫好了,然後面試官看了一眼面試題也沒問面試題上問題,問我你說咱們聊什麼知識,我就說多線程吧,然後他問我Java線程池幾種方式,我回答4種,各位自己查哪幾種,然後又聊thread和runnable,接着問hashtable和ConcurrentHashMap,因爲看過這兩個的源碼所以回答還是挺輕鬆的。陸陸續續問了一些線程安全問題,最後又聊了一些存儲過程知識,這個平時用的少回答的一般,但是我觀點是儘量少用存儲過程,避免把大量業務放在數據庫處理。

還問了一些數據庫索引設計問題,這個我會,所以答的也可以。最後問下我薪水我說最低多少,就開始二面了。二面是一個不是Java的,是這整個團隊的組長,主要問了一些如何處理幾億日誌查詢,我說可以採用存儲過程還有內存數據庫什麼的,她說不是好的方案,接着我問你們有什麼好的方案,她說我們暫時沒有,用的就是你剛剛說的。總體還是挺滿意的然後問我薪水,讓我等下說讓總監決定我的薪水,然後總監不在,這個確實不在,他領着我去人事那邊做個登記說明天給電話來複試。

大約2天后打電話讓去複試,因爲我手裏有offer了就給hr說了情況,我說你問下,如果薪水不到,我就不去了。後來hr回覆他們確實給不了,我說那就算了。這家公司是好的開頭,整個信心提升了好多。

第五家公司:簡稱E

這家企業大約700人,300多個研發,辦公環境倒是一般,下午2點過去的,也沒有面試題,主要問線程知識,然後問我你熟悉哪個數據結構說個,然後我隨便說了幾個他說可以,又問我要多少薪水,最低多少我說了下他說沒問題,就讓我去二面了。

二面問的是數據庫,線程方面知識,我感覺答的倒是一般,大約聊了半個小時,然後說我們今天就聊到這,然後我就回去準備下一家,然後回來路上一面就給我打電話說你面試通過了,薪水按照你說的來,問我啥時候入職我說下週,他說盡快,最後hr也給我說了薪水,過了一天就發了offer,這家公司感覺還行吧,最後只是感覺挺對不起hr的,答應去沒去,打電話時候明顯生氣了。

第六家公司:簡稱F

這家公司規模還不錯,可能有些買水果支付錢的時候還用到,但是總部在上海,北京新成立不久。這家沒面試題,主要是針對項目,問我遇到過什麼問題,爲什麼這麼設計,好處在哪裏,我都一一解答了,聊得時間蠻久的,最後他說他們加班可能會少,團隊目前就5個人,問我能否接受,然後又說自己公司很有前景什麼的一堆,我個人不喜歡這樣小團隊,坑太多就說我回去考慮下給你打電話,當然薪水他也說可以按照我要的來。因爲不喜歡這樣環境所以也沒打電話給他。

第七家公司:簡稱G

這個公司可以算是3線互聯網了,小有名氣,規模也比較大,當時是很想拿下的,下午2點過去的,不過面試的還挺多的,就我那一屋子就3個人,面試題是一個小時,第一題主要是針對目前流行的一些技術,讓解釋下。

我大約搞定了80%,因爲平時看的多,但是也很多隻是知道存在並不知道用法,第二題是一個排序,我寫了一個快排,第三題是求一個數的質數第四題是二叉樹(個人覺得出的有問題我後來問題這個題意義是什麼他說考察一下是否會寫遞歸)第五題是設計題我參考了一下集合方面的設計,採用接口+抽象類+類這種方式。最後是一個排序,我沒有多少思路。

面試時候可能人多直接由技術總監面試,技術考察點倒不是很多,着重考察個人,問你如何展開工作,你是什麼樣的人等等我回答的還可以,然後他說你的薪水多少我說下,然後他簽字說去找hr吧。這家過的很輕鬆。

hr給的薪水明顯低些,但是他們4個月獎金,3個月一發,考覈是0.8到1.2基點。offer合同也有寫,應該比嘴上說我們幾個月年終獎靠譜多了。這家企業我猶豫了好久,因爲後面我成功面試了另外一家,這家技術總監給我打電話聊了有半小時說了一下他們的前景而且薪水會加到比我拿到的只多不少,hr後來打電話也確認了這件事。

在後來屬於我的直屬上司又打電話和我聊聊,不過說實話挺感動,我說我們加微信吧,以後有機會再合作,因爲互聯網圈子很小。

第八家公司:簡稱H

這家企業規模還挺大,讓寫一個心理測試題,主要是php開發,根本就沒有Java開發,主要想招幾個人做一些項目維護,來了一個面試還挺帥的,主要就問項目,沒什麼具體技術點,就是我們相互吹吹牛逼,他吹完我在吹,然後說小夥子很不錯,要不要考慮來啊,我說這個壓力山大啊,你容我考慮考慮就回去了,反正我肯定不想在這樣環境工作,很苦逼。

第九家公司:簡稱I

這家公司知名度挺大的,估計大家也都知道。下午本來約好是4點面試,但是我中間有事遲到了,4點半過去的。第一面的面試官很nice,感覺人特別的好,也很隨和,生活中是值得交的朋友。第一個問題問我什麼事面向對象,反正我回答滔滔不絕。

第二個問了hashtable相關的知識這個我也會接着我們又聊聊volatile,我又說了Java內存模型,後來讓寫個算法,寫的不太好,他說沒關係,我只是想看看你的代碼風格。然後又讓寫個sql,我隨手就寫出來,然後他說你在寫個那個有點複雜沒寫出來,他說沒關係,這個不是面試的範疇,有點難爲你了,這個不算啊,不要在意。

後來我記得還問了數據庫索引方面知識,最後告訴我你的一面過了,你等下一面吧(反正這個面試官給了我很深的印象,人確實不錯)。

二面主要考查的是項目,主要問了我最後一個項目包括很多細節,如何優化的並且畫圖,同樣也讓寫個算法,不過比較好的是讓僞代碼就行,所以我還是寫出來了,不過又問有沒有更好的方式,我想了想說目前我也沒更好的方式了。(遇到算法題哪怕在複雜只要實現就寫,能寫出來比不會寫強很多)整個面試還是圍繞項目展開的。

後來面試結束他說整體還可以,某些細節沒答出來,但是整個思路都是對的,那時候都7點多了,問我明天再來一次複試怎麼樣,我說我只有上午有時間,下午我有面試。他說你等下我去找老闆(就是他的領導),然後展開三面,三面上來問了一下整個項目的流程我再次解釋並畫圖,然後聊天過程核心還是團隊協作問題,如何和產品經理溝通,還有一個如果你是組長你會怎麼樣做,側重管理能力,因爲我在第二段工作做過類似所以回答起來還是很輕鬆,其實和產品溝通,研發溝通最主要是換位思考,懂的尊重別人。

面試完畢都快9點了,他說hr肯定面不了了,你明天還要不要在來一次,我說明天下午有面試來不了,他說那沒事我讓她電話聯繫你,我說薪水我要多少合適啊,他說你隨便,我說我有offer了說下offer薪水,他說你可以提,我們這邊會給你一個考覈的。

最後走的時候說你明天和hr聊天注意點說話不要被刷了,儘量不要說你領導過多好話。反正意思保持中立。前前後後到發offer用了2天時間,hr確實也沒問薪水問題直接他們評定的。我覺得挺理想的。

第十家公司:簡稱J

這家同樣是大企業,名氣也不小。由同事內推過去的。面試的人簡直了實在太多了,感覺所有面試加起來100人都不止,去了也沒筆試題,一面就問我幾個問題,一個是二叉樹的順序排序,會先跟,後跟,中跟就是不會順序,尷尬了。

第二個讓寫一個單例模式,寫了一個內部類。第三個問題問了hashMap的<操作,我回答的不算好,主要考查源碼的,然後讓我寫個歸併排序,這個同樣寫不出來,連續幾個就知道完蛋,肯定不過。果真不過,然後問我面試怎麼樣我說還行拿到幾個offer,他說恭喜之類的話就讓回去了。

 

總結:

整個面試下來,覺得面試也有運氣成分,但是更多是實力體現,我們不要抱着僥倖的心理,把基礎打雜事,注意說話的方法,一定洋溢着自信。

1、誠懇

注意一點是當面試官問你你有什麼想問他的不,把握好機會,也會可以逆轉局勢。你可以問他需要什麼樣人然後定位自己看看自己是不是,說到底面試的人想要招人過去,記得一定要誠懇。

2、不說大話

不要說什麼大話,什麼我精通多線程之類的。就說你自己性格特點能做什麼樣事,也許面試官會給你一個機會。

3、面前準備

還有就是面試之前記得準備充分,關於是否要看面試題,如果可以還是要看一下,注意一下問題的細節,爲自己創造多一點機會。

4、面後總結

還有就是面試完畢之後進行總結,千萬失敗否定自己垂頭喪氣。

如果感覺公司還不錯,就可以踏踏實實工作,不要眼高手低,錯過機會,當你實力很強的時候就是企業主動找你的時候。

最後:

把面試題和在網上找到的一些答案整理了PDF,送給有需要的朋友,幫忙點贊一下,私信【面試資料】即可獲取免費了!(一定要記得關注我,不然沒辦法回覆陌生人私信)

還有一些架構相關的視頻,其中覆蓋了互聯網的方方面面,期間碰到各種產品各種場景下的各種問題,希望可以幫助大家擴展自己的技術廣度和知識面。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章