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