2019年初的面試經歷及總結


       前言                                                                                  

       說來話長,從18年下半年開始,就有了離職的念頭。但由於18年年初時答應項目經理要再待一年,所以強壓下心頭的邪念,堅持着一直做到年底。這期間身兼各種工作-提數、排查線上問題、給各個省公司的人答疑解惑、與其他部門聯系溝通、做公司一個內部配置平台的前端頁面的開發,唯一做的很少的就是后台開發,咳咳,實在汗顏。干了幾個月后發現狀況不對,急需提升自己的開發水平,於是開始看起JVM原理(第二遍看)、Spring源碼、mybatis源碼,順便了解了不少mysql相關的知識,像不同引擎對應的索引結構、事務隔離級別、B+樹等。就在不斷地自我膨脹與自我懷疑中,滿懷期待又惴惴不安地迎來了這一波面試。

 

       面試過程                                                                           

        整個的面試過程滿是曲折。從春節假期開始到二月底結束,持續的時間不長,一共也就面了五家。春節假期前是支付寶負責保險模塊的部門,春節假之后是OYO酒店,再然后是平安健康險、河馬,最后面的是G7物聯網。

        年前面的支付寶這次面試純粹是個意外,還沒投簡歷就不知為何被獵頭找上了,聯系了阿里,答應着春節之后會安排電話面試。沒成想阿里的辦事效率奇高,當天下午就給我打來電話要求電話面試一波。沒啥好推拖的,我就硬着頭皮開始了我人生中第一次的阿里面試,問的東西現在看來也能答個七七八八,但當時由於剛從工作中解放出來,很多基礎的知識點沒有復習基本只剩一點印象,面試時心跳加快,面紅耳赤,在我們北方零下好幾度的鄉村里,硬是面出一身汗來,而面完之后,就知道已經GG了。趁着假期就把電話面試中問到的點都或深或淺地研究了一遍。因為要找工作,所以年假沒有多用,剩了兩天。法定節假日過完我就回了公司,着手面試准備。

        正式准備后的面試是OYO酒店的,本以為手到擒來,但是面試官接連問到了我的知識盲區,頓時無語淚先流,回去后針對此次面試又做了查漏補缺。

        再后面是周六平安健康險跟河馬的面試專場。由於兩家面試點相近,所以我約了同一天,平安上午河馬下午。上午的面試沒什么特別的,問的都是常用的技術點。平安的專場面試格外提一點,其他的平安分公司不了解,但是健康險這次專場面試做的不錯,給應聘者准備了零食水果,中午午飯點的外賣,負責面試的人也比較有職業素養,總之這次面試讓我對平安的觀感好了不少。不過期間HR面差點被pass。由於上午的面試還算順利,所以下午面河馬時就充滿信心乃至膨脹了。開始是做筆試,兩道題。做完之后排隊面試,兩個面試官問了我三五個問題,然后就把我給pass掉了。哎,瞬間被打回原形。

       最后是一個前同事內推的機會,公司是做物聯網的。第一輪是電話面試,通過后去公司經歷了兩輪技術面一輪HR面。這里的HR面更多的是一個確認的過程,聊完之后就是等通知談薪資。

       也沒啥好說的,物聯網跟平安給了offer,薪資方面平安那里更多一點(也沒多多少),考慮了一番,最后去了平安。

 

       面試分析                                                                                  

 1、年前支付寶電話面試

HashMap跟HashTable的區別,前者為什么會線程不安全,后者線程安全的原因;

原子類實現原理;

Lock鎖的原理,講講CAS;

數據庫引擎行鎖跟表鎖;

BIO跟NIO的區別;

對現有業務的理解,活動的封裝策略;

JVM的垃圾回收、對非堆內存的理解;

Dubbo負載均衡、分層架構;

消息隊列,Kafka吞吐量大的原因;

       現在不少公司都會在正式面試之前先進行電話面試,個人覺得這樣挺好,節省雙方的時間。 在電話面試中就可以初步判斷應聘者是否具備公司需要的基本技術能力。從上面的電話面試問題中可見一斑,問的都屬於硬基礎知識,你掌握了這些知識點,不一定說明你是一個具有高技術能力的人,但是如果你沒掌握,一定說明你知識儲備不夠,達不到他們的技術要求。首先,面試時一定不要給自己挖坑,而這次我就給自己挖了很多坑,比如談到消息隊列,我說現在公司大多用kafka,然后面試官就順嘴問了一句kafka有什么優勢,我說吞吐量大,人家又問為什么,我就兩眼一懵把自己繞進去了。其次就是老生常談的,大公司對技術點尋根究底,自己平時在學習時也盡量如此,要了解一個點就使勁挖掘下去,切忌淺嘗輒止,這一點我做的很不好。最后就是對於自己做過項目的梳理,梳理出來重難點,想好怎么表述,以及猜測面試官可能問的問題進行相應的回答准備。

2、OYO的面試

自身業務描述

Kafka的topic如何使用

搶紅包的場景設計如何保證事務的一致性

CountDownLatch的原理,與CyclicBarrier的區別

Synchronized跟lock的區別

HashSet原理

索引失效的情況,最左前綴原理的應用

dubbo的失效重試機制

redis數據結構,使用場景,結合項目經驗談

redis哨兵模式的實現

算法題:選擇買入賣出點實現股票收益最大

       這次面試是在我不長的面試生涯中第一次考我算法題,而且還是現場手寫代碼,最后思路有,但是代碼沒實現。還有就是坑爹的HashSet,由於set平時用得少,所以也沒看過它的源碼,直到這次被問到,當真是尷尬。面試歸來后特地看了一下源碼,MD發現竟然就是一個HashMap,key放值,value為一個靜態Object空對象。哎,真是陰溝里翻船。個人感覺就是對於平時接觸的少的數據結構,也要了解一下,切忌跟我一樣只走熟悉的路 >< 。

3、平安健康險面試

悲觀鎖樂觀鎖

數據庫索引原理

項目中遇到過的JVM相關的問題,JVM調優

HashMap

博客有沒有,並現場查看

談談項目

        技術面整體沒啥好說的,都是常用的東西,着重說一下HR面。一般的公司,以技術面為主導,HR面大多只是走個過程(除非太奇葩),不會淘汰人。但是平安這是真的會淘汰,而且也了解過其他面試阿里的人,也有不少人是過了技術面卻倒在了HR面上。我的理解是但凡一個可以的公司,招人時都會看一下應聘人員對於公司文化的認同度以及匹配度,如果覺得不匹配他們很可能會把你pass掉。所以個人的建議時,面試前稍微了解一下目標公司的公司文化,然后在HR面時做相應的改變。比如平安倡導狼性文化,那在跟HR交流時盡量讓自己更有侵略性一些,比如聲音調大,眼神堅定,話語中少用一些不確定性的詞語,最好再來點肢體動作,balabala...。當然這只是個人感悟,具體還要視場景視面試官而定,扯淡而已,勿噴勿噴。

4、河馬面試

筆試題兩道:第一道是考查多線程,大體內容是這樣的,三個線程1/2/3,每個線程對應打印1/2/3,用一個方法運行這三個線程使得打印出來的結果為123123123123,重復10次;第二道題是考查算法與數據結構,用偽代碼實現,具體的內容不記得了,只記得比較容易... 

講講熟悉的項目,遇到過的困難的問題;

HashMap原理,ConcurrentHashMap線程安全的原因,get方法有沒有鎖

談談cas

mybatis中#跟$的區別,發生sql注入的原理

AOP的實現原理,多個切面切到同一個類時,是如何實現切面調用的

       這次面試讓我深刻的體會到了項目經驗的重要性。盡量參與那些難度較高的項目,最好再遇到過幾個高逼格的問題,你也對問題的解決貢獻了力量,這樣的話在談項目經歷時會很受待見。而如果實在是平時做的東西沒技術含量,除了CRUD跟接口調用沒有別的(我之前的工作就是這樣啊),那就好好利用業余時間研究一個或者做一個高逼格的項目吧,不然項目經驗這里肯定給減分。

5、G7面試

StringBuilder跟StringBuffer

HashMap原理

事務傳播行為

事務隔離級別

消息重復發送

dubbo注冊中心掛掉會不會影響消費者消費,原因

CountDownLatch的使用

Redis的應用場景

搶紅包的場景設計

mybatis的#跟$區別,如何設置sql的最大執行時間

對稱加密與非對稱加密

        在這次面試之前剛好研究了事務的相關知識,所以應對起來輕松了不少。mybatis的#跟$在這里又遇到了,所以要面試的道友們如果對這一塊不熟悉的話還是要盡快了解一下,從sql注入到原理,再到如何避免,可以牽扯出不少東西。

 

        總結                                                                                  

        要想實現個人的進階,首先基礎知識必不可少,數據結構、多線程、鎖、數據庫索引、java包中的一些基礎類源碼 都需要有清晰的了解;其次各開源框架源碼要了解乃至熟悉,從Spring,到mybatis,從dubbo到其他中間件,能看懂源碼並了解其中的關系以及其中的原理,這本身就是學習能力的體現;最后項目經驗盡量出彩,並且總結梳理到位,如果平時工作的項目沒技術含量,就自己造或者研究別人不錯的項目。

       這次跳槽算是告一段落,薪資也比較滿意,后面就是開啟新一輪的打怪升級了,各位道友,加油哦!

        


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM