首先介紹一下我的面試經歷,上週花了一週的時間,面試了5家公司,拿到兩個offer,這篇面試分享是在拿到第二個offer的當天晚上寫的。
由於時間相隔較短,所以面試大部分內容都記得,我就單刀直入直接寫一下我的面試內容,寫作水平一般,有點像記流水賬,大家將就着看看。。。
面試過程還原:
一、360金融
360一上來就是做幾頁紙的題其中包括選擇題20題和簡述題9題,加上填表時間,一共給了我45分鐘。
其中簡述題主要有以下幾個
寫出最近項目中代碼工程目錄結構,簡述各部份作用
如何避免對外開放接口被攻擊,有哪些常用的防護手段可以用上?
描述線程池的作用,並寫幾個常用的線程池類
什麼是操作的互斥性,接口冪等性如何保證?
異步通知交互補償機制的目的和設計?實際工作當中有沒有做過,踩過什麼坑麼?
描述一下TCP三次握手和四次握手地過程,查看TCP連接各狀態用什麼命令?
談談Threadlocal是如何解決併發安全的?
Equals()方法與==的區別?重寫equals方法的還需要重寫哪些方法?爲什麼?
列舉一個設計模式,用代碼或者僞代碼實現
45分鐘後,準時過來收題了。
過了一會之後、進來了一位面試官、進行了技術上的面試。
談談你在項目中的角色,做出哪些貢獻、項目的組織架構是怎麼樣的?公司有多少人?
給我畫一畫系統架構圖
談談併發,談談分佈式緩存
談談分佈式事務
你在實際的工作當中有沒有用到線程池?
談一下你平時是如何設計系統的?系統是如何拆分的?要考慮哪些問題?
如何將一些熱賣的商品推薦給用戶的?
談談做過哪些系統優化?以你的實際經驗和踩過的坑拿幾個真實的案例出來說說?
面試結果:沒有進入下一輪、直接回去等通知,掛掉。。。
二、行雲全球匯
1、這家公司就是HR一上來就談了一些問題,比如你的職業規化、技術上有哪些短板、爲什麼要離開上家公司、跟上級領導性格不合怎麼辦、遇到技術問題出現僵持不下怎麼辦、以及問了一些其它的一些問題。
2、然後技術人員過來交談了近一個半小時,談的技術主要圍繞簡歷上進行的。
談談分佈式事務?
分佈式緩存的一系列問題
你看過springboot源碼,說說springboot的啓動過程?
beanfactory與factorybean的區別是什麼?
有用過線程池嗎?有哪些線程池?線程池裏面有哪些核心參數?
Jdk7與jdk8的區別
談談HashMap
有用過volatile嗎
springsecurity與shiro的區別、以及它們的使用場景?
zuul網關Filter處理流程及異常處理
eureka與zookeeper註冊中心的區別?不用eureka可以嗎?eureka已經停止維護了,有哪些替代方案?
現場手寫遍歷一棵樹
在系統中如何做sql優化的? b+樹和b-樹有什麼區別?
mybatis中${}與#{}的區別?Statement與PreparedStatement的區別?
mysql中的數據如何與es進行同步的?同步是否有延遲?
說下netty,你在實際的工作當中,哪裏用到了netty?
分佈式會話是如何實現的?
Jvm中有哪些算法?
一個服務慢了你是怎麼定位的?
3、然後就是管理者來談了一些問題
主要問了就是你在項目中的角色、有沒有帶人、手下面有幾個兄弟、以及未來的規化等。
4、再就是換了一個HR來談了一些問題,過往的一些工作經歷、 確定入職時間,談薪等。
面試結果:拿到offer
三、某千萬級用戶量的水果新零售公司
這家公司也是另外一家樓主拿到offer並最終選擇去的公司
樓主選擇的原因是公司流量和用戶量都在千萬級別以上,有較大的發展空間
另外,薪資是25K * 13,也比較滿意,工作時間是雙休5天7小時制,整體來說性價比還是很高。
下面說下這家公司的面試過程:
1、一上來就是研發副總監進行面試
自我介紹一下
你們系統的用戶量有多大?日活多少?高峯時期qps有多大?
說說分佈式事務,給我手畫一下你們分佈式事務是如何實現的?用了這個事務框架有沒有遇到問題。
Redis有哪些算法?給我描述一下。
給我畫一下你們的系統架構圖(然後進行了描述)
說說你們的系統爲什麼要用springcloud,不用dubbo?
說說dubbo?
說說zookeeper?
說下java的內存模型
netty的線程模型是怎麼樣的?
tomcat有哪幾種 Connector運行模式?
Spring提供了哪幾種標準的事件、分別給我描述一下?
mybatis 是否可以映射 Enum 枚舉類?
給我描述一下springmvc的請求流程
說說分庫分表有哪些方案,爲什麼選擇了sharding-jdbc而沒有選擇Mycat,說說你們是按照什麼規則進行分庫的?分庫分表之後是如何進行關聯查詢的?
說下jvm的運行時數據區?有哪些垃圾回收器?
有對mysql進行優化嗎?是怎麼優化的?
有用過流程引擎嗎?說說Activitiy底層原理。
2、然後是總監上來談了一會、主要談了一些個人傾向與職業發展等問題
3、HR面談、比較詳細的問了過往的一些經歷、談薪、以及什麼時候入職等。
四、其它2家小公司
此外,樓主還面試了其他兩家小公司,問的東西相對來說都比較簡單、最後都是因爲雙方不太匹配、最後沒有談成。
個人的一些面試體會
最後說一下我個人在面試中的一些體會,供大家參考。
第一個就是答題思路,這一塊的話,當面試官問到某個問題的時候,我腦海裏面就基本上呈現出一幅畫面,加上一些文字性的記憶,然後可以一步步的說出來。
所以建議大家平時準備的時候,儘量對某個技術點多畫圖,畫圖理解,輔助記憶,個人感覺效果挺好的
另外,找工作面試是一個重要的環節,面很多試是一個身累心累的工程,在尋找到下一個理想下家之前,每一次感覺就要勝利,又每次掉回空中,不想要被折磨。
我覺得要學會總結,總結自己,總結公司,要先認識到自己的優缺點,硬件和軟件,硬件專業技能,行業資源,從業經驗,軟件性格成長,情緒管理,精神狀態,未來規劃等。
關於offer選擇的話,應儘量選擇在自已期望範圍之內的,包括薪水、工作氛圍、技術、業務等、這樣進去之後你纔會做得開心。
這就是我的面經分享,希望可以幫到各位在準備面試或正在面試的朋友們。