疫情期間共收到7個offer,用同一個技術套路了多位面試官

年前辭職趕上了疫情,前段時間纔開始集中面試,連拿了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相關的面試真題(含解析):

需要的程序員朋友,私信【Spring】或掃描左側主頁二維碼免費領取!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章