您好,登錄后才能下訂單哦!
學(xué)習(xí)路線圖往往是學(xué)習(xí)一樣技術(shù)的入門指南。網(wǎng)上搜到的Java學(xué)習(xí)路線圖也是一抓一大把。
今天我只選一張圖,僅此一圖,足以包羅Java后端技術(shù)的知識(shí)點(diǎn)。所謂不求最好,但求最全,學(xué)習(xí)Java后端的同學(xué)完全可以參考這張圖進(jìn)行學(xué)習(xí)路線安排。
當(dāng)然,有一些知識(shí)點(diǎn)是可選的,并不是說(shuō)上面有的你都要會(huì)啦。我在復(fù)習(xí)秋招的過(guò)程中就是基于此圖進(jìn)行復(fù)習(xí)的,感覺(jué)效果還是不錯(cuò)的。
閑言少敘,我們還是看看這張圖上都包含哪些有價(jià)值的信息吧。再次說(shuō)明,本文只對(duì)路線圖做一個(gè)簡(jiǎn)單地解讀,僅供參考。大家可以根據(jù)自身情況來(lái)指定合理的學(xué)習(xí)計(jì)劃,相信也會(huì)大有裨益。
???
這部分內(nèi)容是計(jì)算機(jī)相關(guān)專業(yè)同學(xué)的課程,但是非科班的小伙伴(譬如在下)就需要花時(shí)間惡補(bǔ)了。特別是計(jì)算機(jī)網(wǎng)絡(luò),操作系統(tǒng),數(shù)據(jù)結(jié)構(gòu)這三門課程。
至于編譯原理,個(gè)人大概懂一點(diǎn)就行了,我也只看過(guò)簡(jiǎn)單的概念和狀態(tài)機(jī)相關(guān)的內(nèi)容,并不是特別重要。
這里的Java編程部分包含了很多內(nèi)容。我們可以分別看看,大概歸納一下就是這幾個(gè)部分。
這里的Java基礎(chǔ)包括基本語(yǔ)法,集合類框架,以及一些高級(jí)特性,比如反射,注解等等。
Java基礎(chǔ)的知識(shí)點(diǎn)非常多,所以要真正搞懂也沒(méi)有那么簡(jiǎn)單,另外,隨著時(shí)間推移,一些新特性也需要得到我們的重視,比如時(shí)下流行的JDK8。
我一直覺(jué)得設(shè)計(jì)模式可以和Java基礎(chǔ)一塊學(xué),所以我也把它放在這里。當(dāng)然,一些真正使用到設(shè)計(jì)模式的地方,譬如JDK的集合類,IO流等等,也需要你足夠重視。
Java Web技術(shù)包括J2EE,以及web框架,乃至一系列常用的組件。
1 J2EE主要包括的就是servlet,jsp這些比較復(fù)古的web開發(fā)組件了。雖然現(xiàn)在直接用它們的情況比較少,但是我們還是需要花一些時(shí)間去掌握它們的。
2 web框架常用的就是Spring了,相應(yīng)的,hibernate和mybatis也需要了解一下。
3 同時(shí),JavaWeb開發(fā)時(shí)的常用類庫(kù),比如jnuit單元測(cè)試,log4j日志工具,以及構(gòu)建工具maven,都屬于我們要掌握的范疇。
4 最后,要注意的是,Web相關(guān)的一些基本知識(shí),比如HTTP協(xié)議,網(wǎng)絡(luò)安全基礎(chǔ),也是我們要考慮的部分。
Java的并發(fā)技術(shù)泛指Java的多線程技術(shù),以及JUC包里的并發(fā)類,比如線程池,并發(fā)工具類,阻塞隊(duì)列等等。
Java并發(fā)技術(shù)完全可以獨(dú)立出來(lái)學(xué)習(xí),是Java進(jìn)階知識(shí)的一大重點(diǎn)。
這一塊內(nèi)容是Java中比較復(fù)雜但也很重要的一塊內(nèi)容。比如BIO,NIO,AIO的一些使用和原理,以及tomcat這類web服務(wù)器,甚至是netty這種網(wǎng)絡(luò)編程框架,都是可以去了解和學(xué)習(xí)的內(nèi)容。
JVM是提供Java程序運(yùn)行的一個(gè)進(jìn)程,學(xué)習(xí)JVM知識(shí),也是我們的必經(jīng)之路。除了看懂《深入理解jvm虛擬機(jī)》以外,我們還要學(xué)習(xí)的內(nèi)容就是JVM調(diào)優(yōu),使用合適的工具診斷問(wèn)題,最后解決問(wèn)題。
這部分內(nèi)容在面試中呈現(xiàn)的不僅僅是GC,內(nèi)存分區(qū),以及類加載器,也包括了我所說(shuō)的JVM調(diào)優(yōu)問(wèn)題。
作為后臺(tái)同學(xué),常年被面試官問(wèn)linux相關(guān)的問(wèn)題,所以覺(jué)得學(xué)好linux還是蠻重要的,除了基本命令以外,最好還能了解一些shell腳本,甚至是內(nèi)核相關(guān)的知識(shí),這方面是我的一個(gè)弱項(xiàng)。
在這個(gè)路線圖里,數(shù)據(jù)部分囊括了非常多的數(shù)據(jù)源,我們可以來(lái)看看都有哪些是我們需要掌握的。
這個(gè)不必多說(shuō),人手都要會(huì),不管是基礎(chǔ)的crud,索引,抑或是進(jìn)階的存儲(chǔ)引擎,分布式方案等,我們都需要對(duì)應(yīng)掌握。
如Redis,memcache一類的緩存,作為后端開發(fā)者的我們也需要對(duì)應(yīng)掌握,當(dāng)然,它們的高級(jí)特性,以及分布式方案,也是必備的知識(shí)點(diǎn)。
基于Lucene的solr,elasticsearch這類搜索引擎,本質(zhì)上也是數(shù)據(jù)源,但是并不是后端必備的內(nèi)容,不過(guò)學(xué)一學(xué)也沒(méi)有壞處啦。
海量數(shù)據(jù)處理的場(chǎng)景越來(lái)越多,大數(shù)據(jù)技術(shù)如hadoop,storm等也越來(lái)越火,但是大數(shù)據(jù)應(yīng)用一般會(huì)由專業(yè)的大數(shù)據(jù)工程師來(lái)做,所以我們學(xué)一些基本內(nèi)容也就足夠了。
5 算法和數(shù)據(jù)結(jié)構(gòu)
算法一直是校招同學(xué)面前的一座大山,作為后端同學(xué)來(lái)講,除了基本的數(shù)據(jù)結(jié)構(gòu)算法以外,也要會(huì)一些高級(jí)的算法,譬如dp,搜索,貪心等等。
另外,通過(guò)LeetCode等題庫(kù)來(lái)刷題的方式來(lái)鞏固算法也是公認(rèn)的好辦法了。
最后一個(gè)部分,也是內(nèi)容最多,覆蓋面最廣泛的部分了。分布式相關(guān)的技術(shù)實(shí)在太多了,我們這里也會(huì)做一下簡(jiǎn)單的歸納。
先了解web架構(gòu)的發(fā)展會(huì)對(duì)分布式的學(xué)習(xí)有更好的理解,畢竟架構(gòu)的發(fā)展也對(duì)應(yīng)著分布式技術(shù)的發(fā)展。
這部分內(nèi)容包括分布式的發(fā)展演化,base理論和cap理論等等,學(xué)習(xí)分布式技術(shù)之前,最好能對(duì)這部分概念有一定了解。
強(qiáng)一致性的解決方案:事務(wù)和鎖,弱一致性的方案:消息隊(duì)列。
一個(gè)常見的問(wèn)題,也有多種解決方案
和上面說(shuō)的緩存一樣,只不過(guò)這里側(cè)重緩存的分布式方案
這里指的數(shù)據(jù)庫(kù)的分布式方案,也包括hbase這種分布式數(shù)據(jù)庫(kù)。
負(fù)載均衡也是一個(gè)值得探討的話題,一般我們討論的是七層和四層負(fù)載均衡。
消息隊(duì)列是一個(gè)比較復(fù)雜的分布式組件,我們可以了解常用消息隊(duì)列比如amq,kafka等的實(shí)現(xiàn)。
服務(wù)化的核心包括rpc,服務(wù)注冊(cè)中心等等。分布式服務(wù)相關(guān)技術(shù)也是后端同學(xué)必須掌握的內(nèi)容。
虛擬化同樣不是后端同學(xué)必須掌握的內(nèi)容,只不過(guò)現(xiàn)在越來(lái)越多的服務(wù)部署方式使用的是docker和云服務(wù)的方式。所以了解一下也沒(méi)有什么不好的。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。