成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

java程序員該怎么自學(xué) 如何系統(tǒng)的學(xué)習(xí)JAVA?

如何系統(tǒng)的學(xué)習(xí)JAVA?java的整體生態(tài)和靠積累實(shí)在是太大了。95年現(xiàn)今20多年的積累,簡(jiǎn)直牽涉到計(jì)算機(jī)軟硬件的方方面面。我暫且就如果說(shuō),提主所說(shuō)的專精,是指jdk本身和一些必要的數(shù)據(jù)結(jié)構(gòu)包括具體用

如何系統(tǒng)的學(xué)習(xí)JAVA?

java的整體生態(tài)和靠積累實(shí)在是太大了。95年現(xiàn)今20多年的積累,簡(jiǎn)直牽涉到計(jì)算機(jī)軟硬件的方方面面。我暫且就如果說(shuō),提主所說(shuō)的專精,是指jdk本身和一些必要的數(shù)據(jù)結(jié)構(gòu)包括具體用法框架和面向?qū)ο蟮幕径妓枷氚伞?/p>

從11年初到現(xiàn)在,總是在學(xué)習(xí)java相關(guān)的知識(shí)。其中也走了不少?gòu)澛?。按自己的積累,決定提主一個(gè)自認(rèn)為比較合理且有一定深度的學(xué)習(xí)路線。大致分下面幾個(gè)階段吧。

1.必須應(yīng)盡肯定的打牢基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)和簡(jiǎn)單的算法基礎(chǔ)。

可以不去迅速的學(xué)習(xí)一些簡(jiǎn)單的四頭系統(tǒng),來(lái)柯西-黎曼方程軟件學(xué)習(xí)的興趣和初期成就感。但,你必須回過(guò)身,仔細(xì)的短時(shí)間內(nèi)數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)和簡(jiǎn)單算法。類似這種書就這個(gè)可以。

2.比較熟練建議使用Java類庫(kù)和java第三方工具框架。

學(xué)使用java的語(yǔ)法,嘗試明白Java語(yǔ)法設(shè)計(jì)什么的邏輯。能熟練掌握到j(luò)dk類庫(kù)本身,這些各種第三方類庫(kù)工具包和第三方框架的簡(jiǎn)單使用。這里學(xué)的同時(shí),幫我推薦看看《設(shè)計(jì)模式》,《代碼整潔之道》,《spring源碼解讀》,《Spring揭秘》等這一類的書集。

3.理解學(xué)習(xí)jdk類庫(kù)本身的應(yīng)用源碼利用和高端第三方框架的源碼和架構(gòu)設(shè)計(jì)。

.例如jdk本身的數(shù)據(jù)結(jié)構(gòu)二叉樹,紅黑樹,treemap,在內(nèi)異步模式包的unsafe,同步阻塞隊(duì)列,call-future等等包源碼,在內(nèi)線程基礎(chǔ)類的實(shí)現(xiàn),各個(gè)類庫(kù)設(shè)計(jì)的結(jié)構(gòu)和設(shè)計(jì)模式。弄懂第三方框架的設(shè)計(jì)思想,理解怎么學(xué)習(xí)第三方框架的核心源碼。

當(dāng)然,這里面很有可能會(huì)牽涉到到其他的事務(wù),分布式協(xié)議等,這里再次展開攻擊。這個(gè)過(guò)程并非是一朝一夕,可能必須大量的時(shí)間和技術(shù)感悟。當(dāng)然了,《設(shè)計(jì)模式》,《代碼整潔之道》,《spring源碼解讀與設(shè)計(jì)詳析》,《Spring揭秘》等等這一大類書,在這個(gè)過(guò)程可以不再理解大差不差了。

4.明白jdk,jre即jvm原理和實(shí)現(xiàn)。

這里我推薦一下看下王振彪的《實(shí)戰(zhàn)java虛擬機(jī)》,里面解說(shuō)也很偏實(shí)操。容易上手解釋。

是需要,這個(gè)可以從jdk自帶的工具學(xué)習(xí)來(lái)何練起。

諸如:jstat,jmap,jstack,jps,jdb.......哪怕有直接是可以窺視運(yùn)行期間實(shí)際內(nèi)存數(shù)據(jù)的HSDB。不過(guò),另外學(xué)習(xí)初步,我們只必須表述正確的幾個(gè)命令,并知道其代表的意義再試一下。不過(guò),第三方監(jiān)控工具,包括jdk本身也提供了3個(gè)可視化的監(jiān)控。

比如,理解jvm的運(yùn)行程序加載原理,搞懂class文件結(jié)構(gòu)。

這個(gè)過(guò)程我們這個(gè)可以借助于之前會(huì)專用監(jiān)控工具,理解jvm加載的基本原理。是可以做個(gè)參考官方各個(gè)版本的jvm標(biāo)準(zhǔn),學(xué)習(xí)看懂class文件。在此處也可以可以使用如classpy等工具,更方便我們真接閱讀理解class文件。也可以試一下接受class字節(jié)碼級(jí)別的隱式調(diào)試工具。甚至,可以不嘗試用用jvm匯編編碼工具。

這一次,表述jvm的垃圾回收機(jī)制發(fā)展歷史和各個(gè)主流垃圾回收器的工作原理。

這個(gè)過(guò)程總之太急切。垃圾回收器有各種串行,右行,新聲代/swap和老年代,包括回收警戒線,wide觸發(fā)條件,各種個(gè)樣的基本參數(shù)和不怎莫得用超參數(shù),和G1的H區(qū),ZGC等等。。。不錯(cuò)的是,GC并不屬于jvm官方規(guī)范的一部分。

然后再,一起動(dòng)手做一些jvm的實(shí)踐和實(shí)戰(zhàn),

諸如,jvm最常見的故障排查和故障總結(jié)歸納,性能調(diào)優(yōu),熱程序加載,class字節(jié)碼的動(dòng)態(tài)操作,asm等。

之后,這個(gè)可以試圖實(shí)現(xiàn)程序自己的jvm。(其實(shí)這個(gè)步驟,對(duì)很多同學(xué)來(lái)說(shuō)不是什么前提是了)

這里我推薦幾本書,也是再次看懂jvm規(guī)范的要求的學(xué)習(xí)路徑。最好自己實(shí)現(xiàn)方法垃圾回收器。

周老師的《深入理解Java虛擬機(jī)》。

接下來(lái)是《深入嵌入式j(luò)ava虛擬機(jī)》和配套源碼。這個(gè)cldc的jvm源碼只能1M多。目前在oracle的官網(wǎng)上,依舊也可以去下載。是一個(gè)設(shè)計(jì)更加精簡(jiǎn)的jvm基于。

這一次,是可以去閱讀《自己動(dòng)手寫java 虛擬機(jī)》。這本書的jvm實(shí)現(xiàn)是按結(jié)構(gòu)go語(yǔ)言編譯程序。當(dāng)然其中也有很多設(shè)計(jì)并又不是的很合算。但基本都不違背了jvm規(guī)范。

這會(huì)兒就可以去看看吧github上各種jvm的開源實(shí)現(xiàn)方法了。有you,scalajvm,javainjava,ajvm,python-jvm,lua,各個(gè)版本各個(gè)有所不同的jvm實(shí)現(xiàn)程序。

當(dāng)然,這些實(shí)現(xiàn)程序都僅僅基本原理。

后面幫我推薦你去看《實(shí)戰(zhàn)hotspot》豹子書,關(guān)注高級(jí)語(yǔ)言虛擬機(jī)的圈子。

不過(guò),垃圾回收的書籍都很少,這里還是推薦一下給你垃圾回收的超經(jīng)典書《The Garbage Collection Cookbook》。實(shí)際上對(duì)新的垃圾回收算法有興趣,可以去知乎搜索相關(guān)的論文和GC算法開源實(shí)現(xiàn)程序的demo。

5.當(dāng)然,我的建議只是因?yàn)橐驗(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)用,無(wú)法躲閃的。

沒有辦法建議,通用知識(shí)熟練,努力專研方向?qū)>?,具體生態(tài)知道一點(diǎn)。

由于提問(wèn)是是對(duì)java本身。我就不再繼續(xù)展開攻擊說(shuō)其他詳細(xì)方向了。描述的是大的技術(shù)方向,卻沒其他答主這樣,具體詳細(xì)去繼續(xù)討論語(yǔ)法糖這種級(jí)別。我希望對(duì)提主所幫助。

有任何問(wèn)題,歡迎關(guān)注快回復(fù),與我討論。謝謝啊。

自學(xué)java怎么入門?

總之編程語(yǔ)言的學(xué)習(xí),更何況相對(duì)于有過(guò)編程經(jīng)驗(yàn)的人來(lái)說(shuō),要抓語(yǔ)言的要注意元素,比如,每個(gè)語(yǔ)言完全應(yīng)該有變量、函數(shù)、整數(shù)集(如數(shù)組、字典、類、結(jié)構(gòu)體等)、流程控制(if-catch、break、continue等)、循環(huán)結(jié)構(gòu)(for、while等),然后再再那就是語(yǔ)言自有的新語(yǔ)法。這樣可以幫你快速入門。

可以說(shuō)對(duì)于上面這些沒有什么概念,此時(shí)反正不是需要極為很糾結(jié)這些概念的文字定義,只是肯定不斷學(xué)習(xí)的書的或電子文檔或者視頻跟隨天天練習(xí)c語(yǔ)言程序,一段時(shí)間自己能解決編譯程序時(shí)的錯(cuò)誤,變深自己對(duì)這些的認(rèn)知和感覺。

書籍有很多,例如:

網(wǎng)上也有很多學(xué)習(xí)站點(diǎn),如廖雪峰的官方網(wǎng)站:

廖雪峰的站點(diǎn)有兩個(gè)優(yōu)點(diǎn)就是,每章都會(huì)有一些小去練習(xí),是這個(gè)可以真接在頁(yè)面上編譯程序嘗試的,且每章到最后也有評(píng)論區(qū)可以不和博主也可以一起學(xué)習(xí)的人留個(gè)言交流。

如果沒有樓主學(xué)習(xí)時(shí)還遇到了其他問(wèn)題自己很難可以解決的,也可以不去搜索一些java學(xué)的群,群里也會(huì)有很多的學(xué)習(xí)資料,而還可以完全將自己的問(wèn)題丟出與群友交流。

我希望還能夠幫到你