年前辭職趕上了疫情,前段時間纔開始集中面試,連拿了7個offer,雖然現在入職的不是BAT,但也算是細分領域裏的準獨角獸公司了。分享一下前段時間自己第三面的面試經歷吧,希望可以對你有所幫助哈。
面試官:一面、二面他們對你的評價很高啊。我看你寫着精通Spring,今天我們就聊聊Spring吧!
我:走着!
面試官:談談你自己對Spring的理解吧!
我:我覺得Spring就是個萬用排插,可以對接幾乎一切的開源接口。像我接觸過的項目有規則引擎,做推薦,做營銷活動,做秒殺等等。
面試官:你爲什麼用Spring?
我:Spring的優點很多,比如方便解耦,簡化開發,但是對我來說主要還是避免重複造輪子!
Spring可以說已經是業界標準了,經過了無數項目的實戰檢驗。遇到問題也可以向全世界的開發人員請教,可以幫忙指出思路或解決方案;
還有就是學習Spring的理念,我經常會研究Spring的源碼,對自己的Java技術水平和應用開發水平提升很大。Spring框架源碼是Java技術的最佳實踐範例。
面試官:我很贊同!我們來問問比較細的點,你知道spring的生命週期初始化回調方法有幾種方法實現?實現原理是什麼?或者說他們的執行時機和在bean的生命週期哪裏體現了?
我:Spring的生命週期初始化方法官方有三種實現,分別是xml自定義方法實現,接口的形式實現和在方法上加註解實現。三者可以共存。但是執行時機和順序不同。Spring的bean在完成實例化後調用beanpostprocessor的after方法之前會回調這些初始化方法。
面試官:Spring的事務隔離級別是如何實現的?
我:高併發場景下,爲了保證競爭資源的安全性,就會考慮隔離級別的問題,結合您剛纔問到的事務的傳播屬性,實際隔離級別這個問題,我覺得結合數據庫的MVCC&LBCC(省略500字),來結合業務場景會更加合適。
面試官:你平常工作中有做過一些spring的二次開發嗎?或者你有沒有針對spring去實現過擴展?
我:曾經我們有個項目用的是springboot開發的微服務沒有用spring cloud。註冊中心用的是nacos,但是spring cloud和nacos整合時候沒有自動註冊的功能。需要程序員手動把微服務通過put命令註冊到nacos。我們通過spring提供的擴展機制自己擴展了這個功能,完成了自動註冊。
面試官:答的很好,最後一個問題:如果沒有Spring,你打算怎麼開展工作?
這個思考了幾分鐘後,我是這麼回答的:Spring的核心源碼,比如:IOC、AOP、Spring事務、MVC原理等從02年到現在基本80%都沒有改動過,核心源碼我還是有信心把控的,手寫一個類似Spring的核心框架,在我的能力範圍內。
另外,如果業務比較緊急,git上有很多可借鑑來源項目,因爲我本人對Spring源碼的瞭解,改造起來不會花費太多時間;
面試官:你本人對公司有什麼要求?(喜聞樂見的談薪水時刻)明天可以來上班嗎?
做程序員難,做一個2020年的程序員更難,隨着IT人員越來越多,我們的競爭壓力也越來越大,想要在茫茫人海中脫穎而出,其實考察的就是我們技術棧的廣度和深度。
Spring 框架的問世,給我們提供了很好的擴展性、易維護性,給我們的開發提供了便利,效率的提高,節省時間。
Spring的用途不僅限於服務器端的開發。從簡單性、可測試性和鬆耦合的角度而言,任何Java應用都可以從Spring中受益。
做Java的人,應該都聽說過一句話:Spring重新定義了Java。
Spring底層到底要看什麼?以下是我的學習筆記,給大家分享一下,希望可以對你掌握Spring有所幫助。(xmind格式可在文末獲取)
Spring學習筆記
Spring作爲現在最流行Java開發技術,其內部源碼設計非常優秀。但是相當一部分程序員沒有用過Spring,很多用過的程序員對於Spring的理解也只停留在很淺的層面,只關注自己用的那部分代碼的邏輯,而並不真正去理解框架,完全不懂Spring源碼。
不懂Spring,你怎麼敢去面試啊?
爲了幫助大家深刻理解Spring底層源碼,並將它應用到工作中。我特邀了前谷歌Spring資深專家子路老師,爲大家帶來一堂《Spring源碼深度分析》,通過本節課的分享,你將擺脫面試造火箭,工作擰螺絲的困境。
全網最通俗易懂的——《Spring源碼深度分析》
如遇掃碼受限,可添加微信:xiangxue-qingzhi
子路老師
前華南谷歌資深工程師 Spring金牌講師;
專精領域:分佈式、微服務、高併發、高可用等技術架構;
適合人羣
1. 具備Java、Spring基礎;
2. 具備一定自學能力;
3. 立志成爲高級工程師、架構師的IT人;
課程介紹:
5.20
Spring bean的生命週期
Spring 源碼編譯
Spring官網的體系認知
Spring bean生命週期源碼學習
Spring 後置處理源碼學習
5.21
Spring循環依賴源碼分析
Spring 循環依賴概念
Spring 容器的如何理解
單例池和容器的關係
Spring三級緩存如何工作
附贈7.8G的Java架構進階資料和Spring學習筆記
掃碼添加依娜老師報名
如遇掃碼受限,可添加微信:xiangxue-qingzhi
“學好Spring,薪資輕鬆翻倍”