記錄面試經(jīng)歷

注:文章沒有花過多心思打磨,記錄為主,因此語句比較粗糙。

背景:本文純粹是記錄自己面試經(jīng)歷,如果你有著和我一樣的背景、一樣的工作經(jīng)驗(yàn),那么這篇文章說不定對(duì)你也有點(diǎn)用。

一、簡(jiǎn)單介紹一下自己

我是小豬,是名畢業(yè)不久的滬漂人員,當(dāng)下在一家上市公司擔(dān)任軟件工程師一職(俗稱:碼農(nóng)),你可能知道現(xiàn)在咱國(guó)家把咱定義成新型農(nóng)民工,迄今為止算上實(shí)習(xí)也有近兩年經(jīng)驗(yàn)。

二、這一次跳槽的幾家公司介紹

這次面試了四家公司,分別是某某買菜、某物、某通、某旗。

2.1 某某買菜

XX買菜是一家快速成長(zhǎng)型公司,業(yè)務(wù)營(yíng)收應(yīng)該主要靠一線城市。

公司比較青睞具有互聯(lián)網(wǎng)經(jīng)驗(yàn)的童鞋,比如你對(duì)用戶(會(huì)員)、支付、商品、各類滿減活動(dòng)、庫存(各類模型)等業(yè)務(wù)比較熟知。

總之一句話,如果你工作年限較短(三年內(nèi))或者沒有電商經(jīng)驗(yàn),那么你可能不是他的首選,這也就是這家公司為啥從不校招的原因。

2.2 某物

某物和某某買菜差不多,都是快速成長(zhǎng)公司,屬于電商范疇。

某物和字節(jié)類似,分大小周,加班文化嚴(yán)重,但是年終非常多,據(jù)我所知基本上年終為六個(gè)月。

2.3 某通

某通的業(yè)務(wù)處于國(guó)內(nèi)市場(chǎng)占有率第一。數(shù)據(jù)量也是越來越龐大,據(jù)說現(xiàn)在的日訂單量已經(jīng)突破1億。應(yīng)該是紅利期的到來。

2.4 某旗

某旗為世界五百強(qiáng)企業(yè),屬于外企,金融板塊。

但出乎我意料的是,某旗居然一輪面就結(jié)束了,HR面就是電話溝通進(jìn)行雙方了解。

上班地點(diǎn)在外灘,有獨(dú)立的大樓,可謂財(cái)氣十足,據(jù)說某旗幾乎不太加班、甚至可以彈性上下班、協(xié)助辦理居轉(zhuǎn)戶。你懂的,就是各類外企福利。如果想一直干下去,或者想找份輕松的工作,可以考慮。但技術(shù)可能相較于其他公司會(huì)稍顯老舊一點(diǎn)。

以上的感受主要來自于面試難度與網(wǎng)絡(luò)評(píng)論。

三、每家公司面試流程

3.1 某某買菜
3.1.1 面試流程

一共三輪面試。

一輪面試重基礎(chǔ),面試官就MySQL問的最多,基本上占整個(gè)一面大半時(shí)間,包括MVCC、事物、引擎、SQL優(yōu)化、各類鎖、文件、底層原理、索引結(jié)構(gòu)。

二輪面試為現(xiàn)場(chǎng)面試,考察了一道動(dòng)態(tài)規(guī)劃算法、Java知識(shí)、各類場(chǎng)景題與設(shè)計(jì)能力。

三輪面試是跟在二輪面試之后,主要看個(gè)人的抗壓能力,會(huì)告知你公司在快速成長(zhǎng)中,加班較多等等這些,如果你個(gè)人有東西不熟悉,在短時(shí)間內(nèi)完不成,你會(huì)怎么做... ...

3.1.2 面試感受

面試官都很Nice,你有答不出來的場(chǎng)景,可以直接反向咨詢,他們會(huì)毫不吝嗇的告知他們的解決方案。

3.2 某物
3.2.1 面試流程

一共兩輪面試。

一輪面試重基礎(chǔ),一道算法題,TCP協(xié)議與HTTP協(xié)議中報(bào)文字段解釋、有沒有抓過網(wǎng)絡(luò)包、Java基礎(chǔ)知識(shí)

二輪面試,多為一些場(chǎng)景題,比如在生產(chǎn)環(huán)境中如何監(jiān)聽Kafka的消息是否有出現(xiàn)丟失等情況。

3.2.2 面試感受

面試官也都很和藹,還是那句話,不會(huì)的東西反向咨詢。

3.3 某通
3.3.1 面試流程

一共三輪面試。

因?yàn)槁吠颈容^遠(yuǎn),我選擇了直接去現(xiàn)場(chǎng),一天面完。

一輪面試有基礎(chǔ)也有場(chǎng)景題,比如Java基礎(chǔ)啊,服務(wù)壓力大如何解決,分庫分表的ID生成問題,數(shù)據(jù)庫、緩存這些,寫出HashMap1.7中Hash算法hash(key) % (length -1),包括為什么這樣設(shè)計(jì)、一致性算法、數(shù)據(jù)庫。

二輪面試是架構(gòu)與HR一起面我,不得不說,架構(gòu)還是架構(gòu),確實(shí)有難度了。各類場(chǎng)景、分庫分表各個(gè)注意事項(xiàng)、RPC、底層原理這些、平衡二叉樹、紅黑樹的左旋、右旋偽代碼。

三輪面試是HR單獨(dú)面試,問了離職原因,包括期望薪資這些。

3.3.2 面試感受

面試官也都很和藹,還是那句話,不會(huì)的東西反向咨詢。

3.4 某旗
3.4.1 面試流程

一輪面即過。

技術(shù)面試官也很和藹,人很nice,面試一開始是英文面試,問了六個(gè)題目,要求英語回答,但難度不是特別大,英語六級(jí)足夠應(yīng)付了。然后就是一些基礎(chǔ)題目包括Java與Spring等,但是沒有算法題與復(fù)雜的場(chǎng)景題目,面試較輕松。

HR面:通過電話溝通。

3.4.2 面試感受

HR很負(fù)責(zé)也很專業(yè),整個(gè)面試響應(yīng)都非常快速。

四、面試題整理

我整理一下這些公司面的題目,我就不分公司整理了,各個(gè)公司大抵相似。

1.五子棋算法題
算法描述:
現(xiàn)有一個(gè)五子棋盤,格子中白子用1表示,黑子用0表示,現(xiàn)在黑、白都走了若干步,現(xiàn)在黑子再下一顆子,試問,黑子能贏嗎?
2.Java方法重載
3.Java啟動(dòng)命令中添加Agent參數(shù)的作用
4.數(shù)據(jù)庫索引的理解
5.HTTP報(bào)文
6.有沒有抓過包
7.HTTPS相比HTTP以往版本的區(qū)別
8.做過的項(xiàng)目
9.你做的數(shù)據(jù)同步,為什么同步的原表不使用binlog這些歸檔日志,再使用Cannal等框架監(jiān)聽,以達(dá)到實(shí)時(shí)性?
10.你做的實(shí)時(shí)區(qū)如何保證生產(chǎn)數(shù)據(jù)的一致性,至少kafka不能丟數(shù)據(jù)吧,有什么監(jiān)控工具嗎,包括數(shù)據(jù)一致性如何保證的?
11.Java HashMap在1.7與1.8的區(qū)別
12.ConcurrentHashMap在1.7與1.8的區(qū)別
13.CAS的過程
14.如果線上Java進(jìn)程有異常了,那么可以通過什么樣的工具去進(jìn)行排查
15. 創(chuàng)建索引的注意點(diǎn)
   1. 比如需要查詢A、B、C、D都需要索引,該如何創(chuàng)建,組合索引還是分開創(chuàng)建
   2. 比如select a,b from table1 where a = 1, b = 2 group by c, order by d
16. 索引創(chuàng)建過多會(huì)有什么樣的問題
17. 建立索引需要注意什么,或者什么樣的字段適合創(chuàng)建索引
18. group by的底層原理
19. 你SQL優(yōu)化的一個(gè)思路是什么樣
20. Explain查看執(zhí)行計(jì)劃需要看哪些字段、以及Type的一個(gè)排序、正常SQL最好要達(dá)到什么樣的級(jí)別
21. 如何在一張已經(jīng)存在的表中添加添加組合索引,說出SQL語句
22. 聚簇索引和非聚簇索引的區(qū)別
23. 不同引擎內(nèi)部存儲(chǔ)數(shù)據(jù)文件的格式
24. HashMap 1.7 VS 1.8的具體區(qū)別
25. HashMap與HashTable這兩個(gè)類分別繼承了什么類與實(shí)現(xiàn)了什么接口
26. ConcurrentHashMap
27. 設(shè)計(jì)模式,比如這些模式在Spring或者M(jìn)yBatis中結(jié)合具體的場(chǎng)景說一下,最后問了一個(gè)策略模式,用場(chǎng)景描述一下
28.算法題:爬樓梯算法,現(xiàn)在一共有N級(jí)樓梯,每次只能爬一步或者兩步,現(xiàn)在問你一共有多少種爬法
29.Java鎖包括JVM關(guān)鍵字鎖與Lock鎖、CAS鎖、鎖升級(jí)的過程
30.TCP如何保證消費(fèi)順序性
31.TCP的粘包、拆包如何解決,以及什么情況會(huì)出現(xiàn)粘包、拆包
32.一道場(chǎng)景題目:Redis中某個(gè)Key是熱點(diǎn)數(shù)據(jù)(先不考慮緩存的三大問題),單臺(tái)Redis實(shí)例的QPS為10w,但是此時(shí)的流量已經(jīng)遠(yuǎn)遠(yuǎn)大于10w,該如何解決?
  兩個(gè)思路:
  > 在業(yè)務(wù)層通過本地緩存去做一部分流量的緩沖
  > 因?yàn)樵赗edis集群分片中,一個(gè)Key會(huì)被一致Hash到某個(gè)Redis實(shí)例,那么我們?cè)诖鎯?chǔ)的時(shí)候,可以通過在Key的后面添加數(shù)字后綴,讓這個(gè)key可以打到多個(gè)Redis實(shí)例中,在查詢的時(shí)候,通過在后面添加隨機(jī)數(shù),從而讓key隨機(jī)達(dá)到任意一個(gè)Redis實(shí)例,以達(dá)到流量分?jǐn)偟淖饔谩?33.英文自我介紹
34.為什么在你畢業(yè)之前就去工作了
35.為什么現(xiàn)在要考慮換工作
36.在之前的公司與現(xiàn)在的公司是屬于什么職位?
37.聊一下Java集合類,考慮一個(gè)場(chǎng)景因?yàn)锳rrayList刪除元素回涉及到移動(dòng),考慮一下在只能有一個(gè)ArrayList對(duì)象如何刪除偶數(shù)位的數(shù)據(jù)
38.JVM聊一下
39.程序計(jì)數(shù)器
40.數(shù)據(jù)庫
41.Spring的啟動(dòng)流程
42.HashMap 1.7 VS 1.8
43.HashMap 1.7中如何計(jì)算hash桶,hash桶擴(kuò)容為何要滿足2的n次冪
44.分布式鎖 ZK 與Redis的兩種方式
45.mysql 字符集utf-8與utf-8mb4
46.一致性Hash算法
47.分庫分表的概念
48.Dubbo
49.在分庫分表的背景下,生成訂單ID的服務(wù)是供給多個(gè)業(yè)務(wù)服務(wù)的,那么如何解決訂單服務(wù)的壓力
50.mysql索引
51.Java鎖
52.Kafka消費(fèi)端在大壓力情況下,因?yàn)樘幚硪恍┫⒌倪^程中,可能涉及到很多下游的服務(wù),那么此刻如何處理,比如下游服務(wù)下線了,那么如果消費(fèi)者一直進(jìn)行重試,勢(shì)必會(huì)造成Lag的激增
53.分布式鎖,包括ZK與Redis、ZK可以實(shí)現(xiàn)哪幾種分布式鎖
54.聊一下項(xiàng)目
55.MySQL聚簇與非聚簇索引的區(qū)別
56.說一下SQL如何進(jìn)行優(yōu)化,對(duì)慢SQL而言
57.HashMap
58.平衡二叉樹的優(yōu)點(diǎn)
59.紅黑樹的右旋操作的偽代碼
60.Spring @Value的作用,與Java啟動(dòng)類中的參數(shù)對(duì)比,與誰的優(yōu)先級(jí)更高
61.Dubbo
62.分庫分表的注意點(diǎn)
63.Java深拷貝與淺拷貝的區(qū)別
64.hashcode與equals的聯(lián)系
65.Java雙親委派機(jī)制以及帶來的優(yōu)點(diǎn)

五、個(gè)人最后的感受包括個(gè)人的前期準(zhǔn)備

面試前還是需要準(zhǔn)備一下的,八股文該了解的還是得了解,其實(shí)你了解了這些原理之后也并不是沒用,這可以幫助你快速定位問題,甚至看到好的思路可以用在自己的代碼中,就比如JDK1.8里很多異步工具,這些工具里面有很多巧妙設(shè)計(jì)可以用在你項(xiàng)目的線程模型中。

八股文的東西都了解了,剩下就是你負(fù)責(zé)的項(xiàng)目亮點(diǎn),你得找出你項(xiàng)目中的亮點(diǎn),亮點(diǎn)不夠多的話,那么二面三面就沒太多聊的。面試官如果想招聘一個(gè)熟練工,那你可能就被淘汰了。項(xiàng)目中如果有一些高并發(fā)、一致性的問題最好不過了。

最后算法還是需要持續(xù)準(zhǔn)備,這對(duì)面試有用,對(duì)你個(gè)人寫代碼也有幫助。

面試時(shí)的技巧,盡可能讓面試官能夠更多的挖掘出你的能力,這一次我做的有點(diǎn)不到位,Java的BIO、NIO、AIO的編程模型包括使用Netty搭建的路由中間件沒有表達(dá)的足夠好,因此沒能抓住面試官的興趣。

如果你有興趣,可以查看我的路由中間件的倉庫哦:https://gitee.com/zhuchaoyang1/router-parallel.git

總之一句話:基礎(chǔ)原理、項(xiàng)目一定有亮點(diǎn)、算法。

最后如果你想去互聯(lián)網(wǎng)的話,還是盡早一丟丟打算比較好。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容