面試3輪差點(diǎn)拿到offer,還從30k降到20k,不好過(guò)啊...
掃描二維碼
隨時(shí)隨地手機(jī)看文章
可能每個(gè)技術(shù)人都有個(gè)阿里夢(mèng),誰(shuí)也不例外。最近準(zhǔn)備跳槽,前一陣子在準(zhǔn)備各種面試,也面了幾個(gè)大廠(chǎng),包括阿里,慘的是我掛在了第三輪。
因?yàn)槊嬖嚨氖呛蠖烁呒?jí)開(kāi)發(fā)工程師,所以純粹的技術(shù)性問(wèn)題比如AOP、Bean生命周期、JDK基本的并發(fā)等等進(jìn)行了深入的討論,在Bean的生命周期就栽了...
Spring官方文檔對(duì)于Bean的定義:Bean就是由IOC實(shí)例化、組裝、管理的一個(gè)對(duì)象。
而關(guān)于Bean的生命周期,如果不從Spring開(kāi)始聊的話(huà),很多人都下意識(shí)會(huì)想到New,通過(guò)New對(duì)象的形式來(lái)實(shí)現(xiàn)對(duì)Bean的實(shí)例化操作,而不再使用Bean后,這時(shí)候Java就會(huì)對(duì)這個(gè)指定的Bean來(lái)進(jìn)行垃圾回收。
但是對(duì)于Spring來(lái)說(shuō),Bean的生命周期的理解可能就比較讓人頭疼了,畢竟Spring這么復(fù)雜,而且對(duì)Bean管理也非常的有邏輯,每一層都有每一層的步驟。
“Spring中Bean的生命周期分了哪幾個(gè)步驟”,是面試中的高頻問(wèn)答。相信大部分的人都能回答出個(gè)大概,比如說(shuō):
通過(guò)構(gòu)造方法實(shí)例化 Bean 對(duì)象
通過(guò)Setter方法設(shè)置對(duì)象的屬性
通過(guò)Aware,也就是他的子類(lèi)BeanNameAware,調(diào)用Bean的setBeanName()方法傳遞Bean的ID(XML里面注冊(cè)的ID),SetBeanName方法是在bean初始化時(shí)調(diào)用的,通過(guò)這個(gè)方法可以得到BeanFactory和 Bean 在 XML 里面注冊(cè)的ID
...
不過(guò)平時(shí)為了簡(jiǎn)化,會(huì)從這五個(gè)方面記憶:
構(gòu)造實(shí)例化
屬性賦值
完成初始化
前后處理
使用后銷(xiāo)毀
當(dāng)然這要更深層次開(kāi)展的話(huà),面試官還會(huì)問(wèn)什么是BeanDefinition?它為什么非常重要?什么是Bean的后置處理器?什么是Bean工廠(chǎng)的后置處理器...
而大廠(chǎng)面試的所有的問(wèn)題幾乎都是圍繞具體場(chǎng)景,你必須要知道為什么要用這個(gè)技術(shù),以及如何做到高可用等等。
為了讓大家對(duì)Spring框架掌握得更加深入,以及要進(jìn)入到實(shí)際項(xiàng)目的開(kāi)發(fā)要用到的Mysql、JVM、Mybatis等等技術(shù),限時(shí)0元Java進(jìn)階訓(xùn)練營(yíng),入群即可領(lǐng)取聽(tīng)課名額。
Spring中Bean的生命周期有哪些步驟?
什么是BeanDefinition?它為什么非常重要?
什么是Bean的后置處理器?
什么是Bean工廠(chǎng)的后置處理器?
什么是BeanFactory?它與ApplicationContext的區(qū)別?
什么是FactoryBean?它與BeanFactory的區(qū)別?
@Import、@Component、@Bean的區(qū)別是什么?
-
什么是ImportBeanDefinitionRegistrar? 它的作用是什么?
Mysql中使用B+樹(shù)來(lái)實(shí)現(xiàn)索引,why?
什么是覆蓋索引、索引下推、索引掃描,what?
Mysql中的主鍵索引是如何生成的,how?
Mysql中的聯(lián)合索引是如何生成的,how?
千萬(wàn)級(jí)數(shù)據(jù)量下如何利用索引進(jìn)行優(yōu)化,實(shí)戰(zhàn)!
-
class文件被加載后在內(nèi)存中是如何存儲(chǔ)的? -
什么是方法區(qū)?永久代?元空間?熱點(diǎn)代碼緩存區(qū)? -
什么是動(dòng)態(tài)鏈接?返回現(xiàn)場(chǎng)? -
類(lèi)加載器、運(yùn)行時(shí)數(shù)據(jù)區(qū)、程序計(jì)數(shù)器是如何協(xié)調(diào)工作的? -
對(duì)象是如何被回收的?回收過(guò)程中會(huì)進(jìn)過(guò)哪些步驟? -
擬機(jī)棧、方法區(qū)、堆區(qū)之間的關(guān)系到底是什么? -
普通場(chǎng)景下我們?cè)撊绾芜M(jìn)行JVM調(diào)優(yōu)? -
高并發(fā)場(chǎng)景下我們?cè)撊绾芜M(jìn)行JVM調(diào)優(yōu)?
DAY4:深入理解阿里p7面試題Mybatis源碼
傳統(tǒng)JDBC弊端在哪兒?
Mybatis核心源碼如何看?
Mybatis是如何連接數(shù)據(jù)庫(kù)的?
Mybatis是如何執(zhí)行sql語(yǔ)句的?
Mybatis如何操作數(shù)據(jù)庫(kù)的?
Mybatis注解@Select源碼解析與xml差役在哪兒?
到底怎樣才能離阿里更近,除了要有目標(biāo),還應(yīng)該持續(xù)不斷的學(xué)習(xí)。本次課程限時(shí)0元,長(zhǎng)按識(shí)別掃碼進(jìn)群,和更多小伙伴一起進(jìn)入進(jìn)階的世界吧!
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀(guān)點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!