想了解java怎么去學(xué)習(xí)嗎?想了解Java 學(xué)習(xí)路線圖,從青銅到黃金?。?021 年 5 月更新)?? 嗎?......本文帶你一探究竟。
1.Java 學(xué)習(xí)路線圖,從青銅到黃金?。?021 年 5 月更新)
在知乎上有不少關(guān)于 Java 學(xué)習(xí)路線的文章,但我發(fā)現(xiàn)其中很多要么過(guò)時(shí),要么操作性不強(qiáng),比如推薦一大堆書籍或者視頻,無(wú)法真正意義上起到模仿借鑒的左右。而眾所周知,GitHub 是一個(gè)最適合程序員學(xué)習(xí)的地方,所以我在 GitHub 上找了一些適合自己學(xué)習(xí)的 Java 開源項(xiàng)目,希望這些項(xiàng)目能幫助你學(xué)習(xí)好 Java。你可以把這次的學(xué)習(xí)當(dāng)成一次游戲,一路打怪升級(jí)直至通關(guān),我層層遞進(jìn)的設(shè)計(jì)了三個(gè)階段:青銅->白銀->黃金。為什么只到黃金?因?yàn)槌蔀檎嬲笈5穆肥欠浅BL(zhǎng)的,我相信黃金之后的路。你一定就會(huì)有自己的想法了,大膽的走自己的路,成為那顆璀璨的“鉆石”吧!一、青銅萬(wàn)事開頭難1.1 快樂的小鳥作為整篇文章的開頭,我選擇了一個(gè)比較輕松好玩的項(xiàng)目,希望能夠勾起你對(duì)編程的興趣!作者僅使用了 Java 標(biāo)準(zhǔn)庫(kù)還原了,曾經(jīng)在手機(jī)上紅遍一時(shí)的“憤怒的小鳥”。先 clone 把源碼下載后,可以通過(guò) java -jar .jar 直接運(yùn)行,也可以通過(guò)運(yùn)行源碼中的 GameApp:main 方法來(lái)啟動(dòng)整個(gè)游戲。通過(guò)學(xué)習(xí)該項(xiàng)目可以學(xué)習(xí)到:使用標(biāo)準(zhǔn)庫(kù)中的一些工具,比如集合、播放音效、加載圖片如何利用多文件,把不同的邏輯拆分到不同的類中去,并相互之間協(xié)作構(gòu)建起整個(gè)游戲的狀態(tài)一些設(shè)計(jì)模式的應(yīng)用,比如單例、對(duì)象池GitHub 地址: Java 圣經(jīng)高爾基說(shuō)過(guò):「書是人類進(jìn)步的階梯」。在歷史的長(zhǎng)河中誕生過(guò)無(wú)數(shù)的著作,計(jì)算機(jī)領(lǐng)域也不例外,而《Think in Java》就是我要重點(diǎn)介紹的一本著作,這本書給我的*印象就是:全!從最基本的數(shù)據(jù)類型到之后的面向?qū)ο笤俚胶竺娴姆盒头瓷涞母呒?jí)話題,無(wú)所不包。我之前閱讀的是第四版實(shí)體書,現(xiàn)在的好消息是,第五版來(lái)了!而且是以開源的形式。經(jīng)過(guò)之前小項(xiàng)目的小打小鬧,大家也有了一點(diǎn)編程的感覺了,是時(shí)候鞏固下理論知識(shí)了,俗話說(shuō)的好:「基礎(chǔ)不牢,地動(dòng)山搖」?,F(xiàn)在這個(gè)階段去閱讀此著作一定會(huì)給你不一樣的感覺,我甚至推薦你每到一個(gè)階段,你可以回過(guò)頭去翻翻這本經(jīng)典書籍,每次都會(huì)有新的認(rèn)識(shí)。項(xiàng)目地址: 一圖勝千言如果你覺得剛剛的「圣經(jīng)」有點(diǎn)重,不妨來(lái)看看這個(gè)項(xiàng)目,這個(gè)項(xiàng)目從 Java 基礎(chǔ)到標(biāo)準(zhǔn)庫(kù) JVM 到 Spring 再到各個(gè)常用到中間件 Redis、Zookeeper 等。每一部分都用了一張思維導(dǎo)圖來(lái)整理出各個(gè)知識(shí)點(diǎn),既能夠?qū)W(xué)知識(shí)的大致了解,也方便了學(xué)習(xí)后,對(duì)已學(xué)知識(shí)的鞏固復(fù)習(xí),可以說(shuō)良心到不行。你完全可以按照自己的節(jié)奏,學(xué)習(xí)的進(jìn)度去查看每一個(gè)知識(shí)點(diǎn)。GitHub 地址: Java 學(xué)習(xí)者需要用到的資料,包含書籍、面試寶典、Java 面經(jīng)、互聯(lián)網(wǎng)大廠面試題等,無(wú)論是想查缺補(bǔ)漏,還是想沖擊 BAT 大廠拿 30k 的高薪,都用的著。Java小白進(jìn)階之路必備書籍資料(含下載方式)二、白銀堅(jiān)持就是勝利2.1 春天來(lái)了Java 在生產(chǎn)中多數(shù)是以服務(wù)端開發(fā)為主,那在服務(wù)端領(lǐng)域還有一個(gè)一定繞不開的 Java 框架就是 Spring。我相信你一定聽過(guò)這個(gè)名字,Spring 這個(gè)框架現(xiàn)在基本已經(jīng)是 Java 服務(wù)端的工業(yè)級(jí)標(biāo)準(zhǔn)了,我就職過(guò)的公司沒有一個(gè)不用的,而 Spring 發(fā)展至今,他工程上的復(fù)雜程度也大大的提高了,各種封裝和抽象,想要搞懂原理變得非常困難,但是你不需要太過(guò)害怕,因?yàn)橹皇峭瓿晒δ苌系拈_發(fā)和一般的使用是不需要知道 Spring 的原理的。Spring 團(tuán)隊(duì)為了能進(jìn)一步提升開發(fā)體驗(yàn),推出了 Spring Boot 這個(gè)框架,你可以認(rèn)為 Spring Boot 是對(duì)原本的 Spring MVC 進(jìn)行封裝并且內(nèi)置了一個(gè) Tomcat 的容器,僅此而已。*如果是新學(xué)的話建議直接從 2.0 開始。關(guān)于 Spring Boot 我這里推薦一個(gè)項(xiàng)目: Hello World 到如何集成 Mybatis 啊,又或者是如何跨域,還有怎么發(fā)送郵件啊等等,都有一個(gè)對(duì)應(yīng)的文件夾的示例。此階段建議按照以下路線學(xué)習(xí):從零啟動(dòng)一個(gè)空的 Spring Boot 項(xiàng)目,可以學(xué)習(xí)到 Spring Boot 的最小配置,以及如何聲明 REST 風(fēng)格的 并返回簡(jiǎn)單的數(shù)據(jù)將 Spring Boot 和 Java 的持久層框架(如 Mybatis-Plus )串起來(lái),通過(guò) REST 的接口進(jìn)行簡(jiǎn)單的增刪改查操作(可以完全不需要頁(yè)面,僅僅需要一個(gè) Postman 或者 curl 即可)使用 或者 Thymeleaf 其他模板引擎,寫一個(gè)簡(jiǎn)單的頁(yè)面(可以是一些簡(jiǎn)單的輸入框,按鈕,完全不需要考慮樣式),再將之前的增刪改查操作串起來(lái),并通過(guò)模板引擎將結(jié)果渲染至瀏覽器。完成這個(gè)階段后,相信你對(duì)企業(yè)中的前后端交互以及框架的基本使用就有概念了。然后就能基于此,嘗試做一些小功能,比如登陸,注冊(cè)等等。2.2 人生就是要難得糊涂Java 本身被詬病最多的就是語(yǔ)法啰嗦, hutool 是一個(gè)簡(jiǎn)單易用的三方 Java 類庫(kù),里面包含了大量的工具類靜態(tài)方法,封裝了原本復(fù)雜的調(diào)用。而它的源碼本身也是值得學(xué)習(xí)的優(yōu)秀開源項(xiàng)目,通過(guò)學(xué)習(xí)它可以了解到一個(gè)優(yōu)秀的 lib 項(xiàng)目是如何組織、規(guī)范代碼的,也希望讀者們以后都能擁有令人自豪的開源項(xiàng)目。項(xiàng)目地址: 要做 NB 不要做 NewBee堅(jiān)持到現(xiàn)在的你需要一個(gè)媲美生產(chǎn)環(huán)境的完整項(xiàng)目經(jīng)驗(yàn),而這個(gè)開源項(xiàng)目恰好可以滿足,推薦這個(gè)項(xiàng)目的原因如下:項(xiàng)目的體量大了很多,不單單是后端代碼,還有一整套的前端頁(yè)面,Awesome!商城基本功能都已經(jīng)具備:首頁(yè),登錄,瀏覽商品,購(gòu)物車,下單等,甚至還有一個(gè)后臺(tái)管理功能,Awesome!GitHub 地址: 預(yù)覽地址: 成神之路之前都是偏向?qū)嵺`的項(xiàng)目,到了這里,應(yīng)該放慢腳步,往更高層的方向出發(fā)了。正所謂,「知其然,更要知其所以然」。有了實(shí)踐的幫助,會(huì)讓學(xué)習(xí)理論不那么枯燥,同樣也因?yàn)槔碚?,讓?shí)踐有了更好的基礎(chǔ)。項(xiàng)目地址: Java 生態(tài)中的高級(jí)話題,如高并發(fā),分布式,緩存,高可用,微服務(wù)等等。由一個(gè)問(wèn)句引出讀者的思考,讓讀者跟著作者的思路一步步的從提出問(wèn)題,分析問(wèn)題到*的解決問(wèn)題。3.3 走自己的路,讓別人說(shuō)去吧之前的小鳥,不知道有沒有擊中你的心靈?我反正是有,我剛開始學(xué) Java 的時(shí)候也搗鼓過(guò)一些小游戲,比如掃雷,貪吃蛇,坦克大戰(zhàn)等。那時(shí)還不知道有 GitHub 不然這些項(xiàng)目就能和大家見面了,自己當(dāng)時(shí)也瞎寫,對(duì)編程感覺還不強(qiáng),但是親手將一些兒時(shí)的回憶復(fù)刻出來(lái)的感覺是非常棒的,如果你也想用 Java 寫寫小游戲的話,不妨看看下面這個(gè)項(xiàng)目。項(xiàng)目地址: Demo,通過(guò)學(xué)習(xí)可以讓你快速上手,框架還可以將游戲輕松打包到單個(gè)可執(zhí)行文件,快來(lái)試試吧!*我整理了一些 Java 學(xué)習(xí)者需要用到的資料,包含書籍、面試寶典、Java 面經(jīng)、互聯(lián)網(wǎng)大廠面試題等,無(wú)論是想查缺補(bǔ)漏,還是想沖擊 BAT 大廠拿 30k 的高薪,都用的著。Java小白進(jìn)階之路必備書籍資料(含下載方式)來(lái)源::適合 Java 新手的開源項(xiàng)目集合——在 GitHub 學(xué)編程
上述文章了解到關(guān)于Java 學(xué)習(xí)路線圖,從青銅到黃金?。?021 年 5 月更新)?? ,讓我們對(duì)java怎么去學(xué)習(xí) 有一個(gè)直觀的認(rèn)知。我們發(fā)現(xiàn),作為一個(gè)優(yōu)秀的Java程序員是多么的自豪。