前言
學(xué)習(xí)路線圖往往是學(xué)習(xí)一樣技術(shù)的入門指南翁涤。網(wǎng)上搜到的Java學(xué)習(xí)路線圖也是一抓一大把桥言。
今天我只選一張圖萌踱,僅此一圖,足以包羅Java后端技術(shù)的知識點号阿。所謂不求最好并鸵,但求最全,學(xué)習(xí)Java后端的同學(xué)完全可以參考這張圖進(jìn)行學(xué)習(xí)路線安排扔涧。
當(dāng)然园担,有一些知識點是可選的,并不是說上面有的你都要會啦枯夜。我在復(fù)習(xí)秋招的過程中就是基于此圖進(jìn)行復(fù)習(xí)的弯汰,感覺效果還是不錯的。
閑言少敘湖雹,我們還是看看這張圖上都包含哪些有價值的信息吧咏闪。再次說明,本文只對路線圖做一個簡單地解讀劝枣,僅供參考汤踏。大家可以根據(jù)自身情況來指定合理的學(xué)習(xí)計劃,相信也會大有裨益舔腾。
由于圖片比較大溪胶,如果覺得看不清楚,可以點擊原文鏈接查看原圖稳诚。
在這里還是要推薦下我自己建的Java學(xué)習(xí)裙:574加上253再加上075哗脖,群里都是學(xué)Java開發(fā)的,如果你正在學(xué)習(xí)Java 扳还,小編歡迎你加入才避,大家都是軟件開發(fā)黨,不定期分享干貨(只有Java軟件開發(fā)相關(guān)的)氨距,包括我自己整理的一份2018最新的Java進(jìn)階資料和高級開發(fā)教程桑逝,歡迎進(jìn)階中和進(jìn)想深入java的小伙伴
1 計算機(jī)基礎(chǔ)
這部分內(nèi)容是計算機(jī)相關(guān)專業(yè)同學(xué)的課程,但是非科班的小伙伴(譬如在下)就需要花時間惡補(bǔ)了俏让。特別是計算機(jī)網(wǎng)絡(luò)楞遏,操作系統(tǒng),數(shù)據(jù)結(jié)構(gòu)這三門課程首昔。
至于編譯原理寡喝,個人大概懂一點就行了,我也只看過簡單的概念和狀態(tài)機(jī)相關(guān)的內(nèi)容勒奇,并不是特別重要预鬓。
2 Java編程
這里的Java編程部分包含了很多內(nèi)容。我們可以分別看看赊颠,大概歸納一下就是這幾個部分格二。
Java基礎(chǔ)
這里的Java基礎(chǔ)包括基本語法劈彪,集合類框架,以及一些高級特性蟋定,比如反射粉臊,注解等等。
Java基礎(chǔ)的知識點非常多驶兜,所以要真正搞懂也沒有那么簡單扼仲,另外,隨著時間推移抄淑,一些新特性也需要得到我們的重視屠凶,比如時下流行的JDK8。
設(shè)計模式
我一直覺得設(shè)計模式可以和Java基礎(chǔ)一塊學(xué)肆资,所以我也把它放在這里矗愧。當(dāng)然,一些真正使用到設(shè)計模式的地方郑原,譬如JDK的集合類唉韭,IO流等等,也需要你足夠重視犯犁。
Java Web技術(shù)
Java Web技術(shù)包括J2EE属愤,以及web框架,乃至一系列常用的組件酸役。
1 J2EE主要包括的就是servlet住诸,jsp這些比較復(fù)古的web開發(fā)組件了。雖然現(xiàn)在直接用它們的情況比較少涣澡,但是我們還是需要花一些時間去掌握它們的贱呐。
2 web框架常用的就是Spring了,相應(yīng)的入桂,hibernate和mybatis也需要了解一下奄薇。
3 同時,JavaWeb開發(fā)時的常用類庫抗愁,比如jnuit單元測試惕艳,log4j日志工具,以及構(gòu)建工具maven驹愚,都屬于我們要掌握的范疇。
4 最后劣纲,要注意的是逢捺,Web相關(guān)的一些基本知識,比如HTTP協(xié)議癞季,網(wǎng)絡(luò)安全基礎(chǔ)劫瞳,也是我們要考慮的部分倘潜。
Java并發(fā)技術(shù)
Java的并發(fā)技術(shù)泛指Java的多線程技術(shù),以及JUC包里的并發(fā)類志于,比如線程池涮因,并發(fā)工具類,阻塞隊列等等伺绽。
Java并發(fā)技術(shù)完全可以獨立出來學(xué)習(xí)养泡,是Java進(jìn)階知識的一大重點。
Java網(wǎng)絡(luò)編程和服務(wù)器
這一塊內(nèi)容是Java中比較復(fù)雜但也很重要的一塊內(nèi)容奈应。比如BIO,NIO,AIO的一些使用和原理澜掩,以及tomcat這類web服務(wù)器,甚至是netty這種網(wǎng)絡(luò)編程框架杖挣,都是可以去了解和學(xué)習(xí)的內(nèi)容肩榕。
Jvm基礎(chǔ)與調(diào)優(yōu)
JVM是提供Java程序運(yùn)行的一個進(jìn)程,學(xué)習(xí)JVM知識惩妇,也是我們的必經(jīng)之路株汉。除了看懂《深入理解jvm虛擬機(jī)》以外,我們還要學(xué)習(xí)的內(nèi)容就是JVM調(diào)優(yōu)歌殃,使用合適的工具診斷問題乔妈,最后解決問題。
這部分內(nèi)容在面試中呈現(xiàn)的不僅僅是GC,內(nèi)存分區(qū)挺份,以及類加載器褒翰,也包括了我所說的JVM調(diào)優(yōu)問題。
3 Linux
作為后臺同學(xué)匀泊,常年被面試官問linux相關(guān)的問題优训,所以覺得學(xué)好linux還是蠻重要的,除了基本命令以外各聘,最好還能了解一些shell腳本揣非,甚至是內(nèi)核相關(guān)的知識,這方面是我的一個弱項躲因。
4 數(shù)據(jù)相關(guān)
在這個路線圖里早敬,數(shù)據(jù)部分囊括了非常多的數(shù)據(jù)源,我們可以來看看都有哪些是我們需要掌握的大脉。
關(guān)系數(shù)據(jù)庫Mysql
這個不必多說搞监,人手都要會,不管是基礎(chǔ)的crud镰矿,索引琐驴,抑或是進(jìn)階的存儲引擎,分布式方案等,我們都需要對應(yīng)掌握绝淡。
緩存
如Redis宙刘,memcache一類的緩存,作為后端開發(fā)者的我們也需要對應(yīng)掌握牢酵,當(dāng)然悬包,它們的高級特性,以及分布式方案馍乙,也是必備的知識點布近。
搜索引擎
基于Lucene的solr,elasticsearch這類搜索引擎潘拨,本質(zhì)上也是數(shù)據(jù)源吊输,但是并不是后端必備的內(nèi)容,不過學(xué)一學(xué)也沒有壞處啦铁追。
大數(shù)據(jù)
海量數(shù)據(jù)處理的場景越來越多季蚂,大數(shù)據(jù)技術(shù)如hadoop,storm等也越來越火琅束,但是大數(shù)據(jù)應(yīng)用一般會由專業(yè)的大數(shù)據(jù)工程師來做扭屁,所以我們學(xué)一些基本內(nèi)容也就足夠了。
5 算法和數(shù)據(jù)結(jié)構(gòu)
算法一直是校招同學(xué)面前的一座大山涩禀,作為后端同學(xué)來講料滥,除了基本的數(shù)據(jù)結(jié)構(gòu)算法以外,也要會一些高級的算法艾船,譬如dp葵腹,搜索,貪心等等屿岂。
另外践宴,通過LeetCode等題庫來刷題的方式來鞏固算法也是公認(rèn)的好辦法了。
6 分布式
最后一個部分爷怀,也是內(nèi)容最多阻肩,覆蓋面最廣泛的部分了。分布式相關(guān)的技術(shù)實在太多了运授,我們這里也會做一下簡單的歸納烤惊。
web架構(gòu)
先了解web架構(gòu)的發(fā)展會對分布式的學(xué)習(xí)有更好的理解,畢竟架構(gòu)的發(fā)展也對應(yīng)著分布式技術(shù)的發(fā)展吁朦。
分布式理論
這部分內(nèi)容包括分布式的發(fā)展演化柒室,base理論和cap理論等等,學(xué)習(xí)分布式技術(shù)之前逗宜,最好能對這部分概念有一定了解雄右。
一致性問題
強(qiáng)一致性的解決方案:事務(wù)和鎖剥啤,弱一致性的方案:消息隊列。
分布式session
一個常見的問題不脯,也有多種解決方案
分布式緩存
和上面說的緩存一樣,只不過這里側(cè)重緩存的分布式方案
分布式數(shù)據(jù)庫
這里指的數(shù)據(jù)庫的分布式方案刻诊,也包括hbase這種分布式數(shù)據(jù)庫防楷。
負(fù)載均衡
負(fù)載均衡也是一個值得探討的話題,一般我們討論的是七層和四層負(fù)載均衡则涯。
消息隊列
消息隊列是一個比較復(fù)雜的分布式組件复局,我們可以了解常用消息隊列比如amq,kafka等的實現(xiàn)粟判。
服務(wù)化
服務(wù)化的核心包括rpc亿昏,服務(wù)注冊中心等等。分布式服務(wù)相關(guān)技術(shù)也是后端同學(xué)必須掌握的內(nèi)容档礁。
虛擬化
虛擬化同樣不是后端同學(xué)必須掌握的內(nèi)容角钩,只不過現(xiàn)在越來越多的服務(wù)部署方式使用的是docker和云服務(wù)的方式。所以了解一下也沒有什么不好的呻澜。
知識體系整理好(學(xué)習(xí)視頻等資料)递礼,有需要的可以關(guān)注威信工宗號:程序員大牛,+轉(zhuǎn)發(fā)后羹幸,即可獲燃顾琛!重要的事情說三遍栅受,轉(zhuǎn)發(fā)将硝、轉(zhuǎn)發(fā)、轉(zhuǎn)發(fā)后再發(fā)私信屏镊,才可以拿到依疼!