spring框架怎么使用ioc spring學(xué)習(xí)怎么記筆記?
spring學(xué)習(xí)怎么記筆記?spring核心是管理我們的對(duì)象,記核心,學(xué)習(xí)一個(gè)框架,先去了解他的核心是什么?再去記他的一些最重要的知識(shí)點(diǎn),比如說spring的AOP于IOC,他們共有為了干什么啊的,幫
spring學(xué)習(xí)怎么記筆記?
spring核心是管理我們的對(duì)象,記核心,學(xué)習(xí)一個(gè)框架,先去了解他的核心是什么?再去記他的一些最重要的知識(shí)點(diǎn),比如說spring的AOP于IOC,他們共有為了干什么啊的,幫我們幫忙解決了什么問題。
如何系統(tǒng)的學(xué)習(xí)JAVA?
java的整體生態(tài)和靠積累真是是太大了。95年現(xiàn)今20多年的積累,簡(jiǎn)直牽涉到計(jì)算機(jī)軟硬件的方方面面。我不提就以為,提主所說的專精,是指jdk本身和一些必要的數(shù)據(jù)結(jié)構(gòu)在內(nèi)具體方法框架和面向?qū)ο蟮亩疾畈欢嗨枷氚伞?/p>
從11年初至今,一直在在學(xué)習(xí)java相關(guān)的知識(shí)。其中也走了不少?gòu)澛?。按自己的積累,提出提主一個(gè)自如果說合不合理且有當(dāng)然深度的學(xué)習(xí)路線。大概分下面幾個(gè)階段吧。
1.簡(jiǎn)單應(yīng)盡可能會(huì)的打牢基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)和簡(jiǎn)單的算法基礎(chǔ)。
這個(gè)可以去飛速的學(xué)習(xí)一些簡(jiǎn)單的小型系統(tǒng),來不滿足軟件自學(xué)的興趣和初期成就感。但,你必須回過身,仔細(xì)的積聚實(shí)力數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)和簡(jiǎn)單的算法。不同于這種書就也可以。
2.非常熟練可以使用Java類庫(kù)和java第三方工具框架。
怎么學(xué)習(xí)不使用java的語法,數(shù)次明白Java語法怎么設(shè)計(jì)的邏輯。比較熟練掌握jdkjava代碼本身,包括各種第三方類庫(kù)工具包和第三方框架的簡(jiǎn)單啊使用。這里怎么學(xué)習(xí)的同時(shí),幫我推薦看看《設(shè)計(jì)模式》,《代碼整潔之道》,《spring源碼解讀》,《Spring揭秘》等這一類的書集。
3.理解怎么學(xué)習(xí)jdk開發(fā)庫(kù)本身的應(yīng)用源碼實(shí)現(xiàn)方法和高端點(diǎn)第三方框架的源碼和架構(gòu)設(shè)計(jì)。
比如jdk本身的數(shù)據(jù)結(jié)構(gòu)二叉樹,紅黑樹,treemap,在內(nèi)異步包的unsafe,同步阻塞隊(duì)列,call-future等等包源碼,包括線程基礎(chǔ)類的實(shí)現(xiàn),各個(gè)類庫(kù)設(shè)計(jì)的結(jié)構(gòu)和設(shè)計(jì)模式。學(xué)透第三方框架的設(shè)計(jì)思想,理解學(xué)習(xí)第三方框架的核心源碼。
肯定,這里面很有可能會(huì)涉及到其他的事務(wù),分布式協(xié)議等,這里不再繼續(xù)發(fā)動(dòng)了攻擊。這個(gè)過程不是他一朝一夕,很有可能是需要大量的時(shí)間和技術(shù)感悟??隙ǎ对O(shè)計(jì)模式》,《代碼整潔之道》,《spring源碼解讀與設(shè)計(jì)詳析》,《Spring揭秘》等等這一大類書,在這個(gè)過程可以再理解大差不差了。
4.表述jdk,jre即jvm原理和實(shí)現(xiàn)方法。
這里我我推薦看下王振彪的《實(shí)戰(zhàn)java虛擬機(jī)》,里面回答比較比較偏實(shí)操。容易上手再理解。
是需要,是可以從jdk那個(gè)軟件的工具學(xué)來從哪里開始。
.例如:jstat,jmap,jstack,jps,jdb.......甚至于還有真接也可以窺視運(yùn)行期間求實(shí)際內(nèi)存數(shù)據(jù)的HSDB。其實(shí),以及自學(xué)正式,我們只是需要解釋具體方法的幾個(gè)命令,并明白其代表的意義即可。雖說,第三方監(jiān)控工具,以及jdk本身也可以提供了3個(gè)可視化的監(jiān)控。
比如,表述jvm的運(yùn)行加載原理,弄明白class文件結(jié)構(gòu)。
這個(gè)過程我們是可以借助于之前會(huì)專用監(jiān)控工具,理解jvm運(yùn)行程序的基本原理。也可以相關(guān)參考官方各個(gè)版本的jvm標(biāo)準(zhǔn),學(xué)習(xí)看懂class文件。在此處可以不建議使用如classpy等工具,方便些我們?cè)賹懽鱟lass文件。也可以不試試看支持class字節(jié)碼級(jí)別的單步調(diào)試工具。甚至,可以數(shù)次用用jvm匯編編碼工具。
這一次,再理解jvm的垃圾回收機(jī)制發(fā)展歷史和各個(gè)主流垃圾回收器的工作原理。
這個(gè)過程當(dāng)然更加古怪。垃圾回收器有各種串行,左行,新聲代/swap和老年代,和回收警戒線,wide觸發(fā)條件,各種個(gè)樣的基本參數(shù)和不怎末帶的超參數(shù),包括G1的H區(qū),ZGC等等。。。不過的是,GC并屬于jvm官方規(guī)范的一部分。
然后,試著做一些jvm的實(shí)踐和實(shí)戰(zhàn),
比如說,jvm最常見的一種的故障排查和故障系統(tǒng)的總結(jié),性能調(diào)優(yōu),熱程序加載,class字節(jié)碼的動(dòng)態(tài)操作,asm等。
到最后,可以數(shù)次實(shí)現(xiàn)程序自己的jvm。(當(dāng)然這個(gè)步驟,對(duì)很多同學(xué)來說也不是要了)
這里我?guī)臀彝扑]幾本書,確實(shí)是再次搞明白jvm規(guī)范的學(xué)習(xí)路徑。最好自己實(shí)現(xiàn)方法垃圾回收器。
周老師的《深入理解Java虛擬機(jī)》。
這一次是《深入嵌入式j(luò)ava虛擬機(jī)》和配套源碼。這個(gè)cldc的jvm源碼只有一1M多。目前在oracle的官網(wǎng)上,仍舊可以不可以下載。是一個(gè)設(shè)計(jì)相當(dāng)精簡(jiǎn)整合的jvm實(shí)現(xiàn)程序。
接下來的事情,可以去閱讀《自己動(dòng)手寫java 虛擬機(jī)》。這本書的jvm利用是采用go語言c語言設(shè)計(jì)。其實(shí)其中也有很多設(shè)計(jì)并又不是太合算。但基本都遵循什么了jvm規(guī)范。
這時(shí)候就可以去看下github上各種jvm的開源代碼利用了。有play,scalajvm,javainjava,ajvm,python-jvm,lua,各個(gè)版本各個(gè)相同的jvm基于。
肯定,這些實(shí)現(xiàn)程序都僅僅基本原理。
后面推薦一下你上去看《實(shí)戰(zhàn)hotspot》豹子書,打聽一下高級(jí)語言虛擬機(jī)的圈子。
肯定,垃圾回收的書籍也很少,這里我還是推薦一下給你垃圾回收的最經(jīng)典書《The Garbage Collection Cookbook》。雖然對(duì)新的垃圾回收算法有興趣,這個(gè)可以去知乎搜索相關(guān)的論文和GC算法開源軟件實(shí)現(xiàn)方法的demo。
5.其實(shí),我的建議僅僅因?yàn)镴ava本身。
真正要至少完全把英語學(xué)好java生態(tài),軟件工程,計(jì)算機(jī)網(wǎng)絡(luò),大數(shù)據(jù)基礎(chǔ)知識(shí),mahuot,sparklib,分布式搜索架構(gòu),各種消息中間件,緩存中間件,數(shù)據(jù)庫(kù),DNS/CDN。。。。。這些也是做互聯(lián)網(wǎng)應(yīng)用,無法躲閃的。
只有見意,通用知識(shí)非常熟練,努力專研方向精通滿,具體生態(tài)知道一點(diǎn)。
的原因提問是針對(duì)java本身。我就不再發(fā)起說其他具體方向了。具體描述的是大的技術(shù)方向,根本不會(huì)其他答主那樣,具體一點(diǎn)去繼續(xù)討論語法糖這種級(jí)別。如果能對(duì)提主極大幫助。
有任何問題,請(qǐng)關(guān)注發(fā),與我商討。謝謝了。