更新時(shí)間:2020-01-03 16:19:49 來源:動(dòng)力節(jié)點(diǎn) 瀏覽3492次
“學(xué)習(xí)真的是一個(gè)循序漸進(jìn)的過程,也是一件需要堅(jiān)持的事情。對(duì)于這篇文章,不同階段的人可能有不同的理解,所以小編花了點(diǎn)時(shí)間整理了一套學(xué)習(xí)路線提供給大家,以供參考。下面的這個(gè)學(xué)習(xí)路線適合剛剛學(xué)習(xí)了Java還沒有深入、或者是想進(jìn)一步提高的同學(xué)”
我大概把學(xué)習(xí)流程分了三個(gè)階段。
第一階段:基礎(chǔ)階段
基礎(chǔ)階段我主要分為了四大塊內(nèi)容:
一、數(shù)據(jù)結(jié)構(gòu)與算法
1、簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)
(1)基礎(chǔ)概念
(2)數(shù)組
(3)鏈表
(4)隊(duì)列
(5)棧
2、樹
(1)平衡二叉樹
(2)最優(yōu)二叉樹(哈夫曼樹)
(3)紅黑樹
(4)B、B+、B*樹
(5)LSM樹
3、圖
(1)圖的基礎(chǔ)知識(shí)
(2)圖的遍歷(兩種)
(2)最小生成樹(Prim算法和Kruskal算法)
(3)最短路徑算法(Dijkstra(迪杰斯特拉)算法和Floyd(弗洛伊德)算法)
(4)拓?fù)渑判?/p>
4、排序算法(掌握基本實(shí)現(xiàn)和變形實(shí)現(xiàn))
(1)選擇排序
(2)冒泡排序
(3)插入排序
(4)快速排序
(5)歸并排序
(6)希爾排序
(7)堆排序
(8)基數(shù)排序
(9)桶排序
(10)排序算法比較分析
5、java中排序工具
(1)數(shù)組排序
(2)集合工具類排序
6、常見算法
(1)字符串比較KMP算法
(2)剪枝算法
(3)布隆過濾器
(4)回溯算法
建議:對(duì)于數(shù)據(jù)結(jié)構(gòu),要掌握使用JAVA語言去描述數(shù)據(jù)結(jié)構(gòu)和常見的算法操作。
二、java基礎(chǔ)
1、java集合
(1)總體框架
(2)collection架構(gòu)
(3)List系列(ArrayList、fail-fast原理、LinkedList、Vector、Stack)
(4)Map系列(HashMap、HashTable、TreeMap、WeakHashMap、LinkHashMap)
(5)set系列(HashSet、TreeSet)
(6)Interator和Enumeration
(7)集合的使用場(chǎng)景和對(duì)比分析
2、常用類
(1)基礎(chǔ)類型封裝類
(2)BeanUtil工具類
(3)string系列類
(4)java各種關(guān)鍵字(transient、final、static等等)
(5)Math系列
(6)system系列
3、Java其他知識(shí)點(diǎn)
(1)javaIO
(2)java泛型
(3)Java多態(tài)
(4)java注解
(5)Java反射
(6)java中的語法糖
(7)java8、9、10新特性(主要是8)
(8)java異常
(9)創(chuàng)建類的4種方式
(10)String類型為什么不可變
(11)枚舉類型
建議:對(duì)于Java基礎(chǔ),可以先了解到Java的源碼級(jí)別,但是學(xué)過了Java虛擬機(jī)之后,要能夠從jvm的內(nèi)存角度等去分析和理解
三、設(shè)計(jì)模式
1、創(chuàng)建型模式(5種)
2、結(jié)構(gòu)性模式(7種)
3、行為性模式(11種)
建議:設(shè)計(jì)模式主要是在工作中使用,最主要的是了解其思想,然后靈活的使用,但是從設(shè)計(jì)模式衍生出的知識(shí)點(diǎn)是面試常問知識(shí)點(diǎn)。
四、JVM系列
1、jvm內(nèi)存結(jié)構(gòu)
2、類的加載機(jī)制
3、GC算法、分析、優(yōu)化、工具
4、編譯器
5、優(yōu)化參數(shù)等等。
建議:了解兩個(gè)常見版本的jvm,java7和java8,然后對(duì)比分析去記憶,jvm是進(jìn)階的一個(gè)必備知識(shí),面試和工作中經(jīng)常使用。
OK,上面就是Java學(xué)習(xí)的基礎(chǔ)階段。以上這個(gè)階段看完了基本上就可以進(jìn)入下一階段了。第一個(gè)階段是最枯燥乏味的,但是當(dāng)你學(xué)完了這些知識(shí),再往下學(xué)習(xí)的時(shí)候,會(huì)發(fā)現(xiàn)對(duì)Java有一個(gè)全新的認(rèn)識(shí)。對(duì)于這個(gè)階段我的整體建議是要硬著頭皮弄清楚。然后再開始下一個(gè)階段。
第二階段
零、預(yù)備知識(shí)
1、HTML+css+JavaScript
2、常見的前端框架Vue、React、Jquery等
3、jsp+servlet+jdbc
4、最簡(jiǎn)單的小項(xiàng)目訓(xùn)練一下。
建議:對(duì)于前端,你要弄清楚web的整個(gè)執(zhí)行流程,前端要學(xué)會(huì)基本的使用。可以有一個(gè)精通、其他的了解,但是想要學(xué)得好就不要考慮學(xué)這個(gè)那個(gè)了,最好的方法就是全學(xué)了。學(xué)完了之后可以找個(gè)項(xiàng)目訓(xùn)練一下,最主要的弄清楚原理機(jī)制。
一、SSM框架
(1)spring
(2)mybatis
(3)springmvc
(4)SSM整合(包括使用maven整合)
建議:對(duì)于這個(gè)階段其實(shí)也算是基礎(chǔ)階段,因?yàn)檫€有SSH框架,但是已經(jīng)逐漸的不占優(yōu)勢(shì)了,即使是這個(gè)SSM框架也正在被SpringBoot框架所取代,但是這三種框架的原理與思想是極其重要的。
二、相關(guān)工具
(1)maven
(2)git
(3)IDEA
(4)eclipse
(5)日志
(6)Jenkins等等
建議:說實(shí)話這些工具分類沒有嚴(yán)格的劃分,eclipse正在逐漸失去市場(chǎng),但目前依然是idea和eclipse的天下,像vscode這些市場(chǎng)份額還是比較小的,具體的可以看一下百度指數(shù)或者自己搜一下,對(duì)于maven和git是一個(gè)開發(fā)者必要的工具。需要學(xué)的工具太多了,就先了解這個(gè)幾個(gè)常用的吧。
三、java網(wǎng)絡(luò)編程
1、Java網(wǎng)絡(luò)編程基礎(chǔ)
(1)計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識(shí)
(2)socket編程
(3)案例項(xiàng)目訓(xùn)練
2、Java之NIO編程
3、序列化機(jī)制
(1)Java默認(rèn)序列化機(jī)制
(2)序列化框架,比如protobuf等等
4、netty框架
5、Mina框架
6、其他通信框架,如grizzly、quickserver、xSocket等等
7、遠(yuǎn)程調(diào)用
(1)rmi
(2)thrift
(3)gRPC等等
(4)corba
建議:這一小階段,我是書、教程、博客同時(shí)學(xué)習(xí)的,先把計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識(shí)弄清楚再往下學(xué)習(xí),盡量每一個(gè)框架要了解其適用場(chǎng)景和各種場(chǎng)景下的使用
五、數(shù)據(jù)庫(有基礎(chǔ)知識(shí))
1、Mysql、
2、Oracle
3、redis、
4、MongoDB
5、搜索引擎
(1)solr
(2)ElasticSearch
6、Memocached
建議:數(shù)據(jù)庫寫到這里總覺得不合時(shí)宜,因?yàn)榈谝浑A段學(xué)習(xí)了之后,在學(xué)習(xí)jdbc的時(shí)候就需要用到數(shù)據(jù)庫,這里的數(shù)據(jù)庫是要深入去理解的,比如說各種數(shù)據(jù)庫的性能優(yōu)化。工作極其重要。在平時(shí)要了解這些數(shù)據(jù)庫的使用場(chǎng)景,然后用到那個(gè),在著重去理解。
六、并發(fā)編程基礎(chǔ)
1、線程入門(概念、api等等相關(guān)基礎(chǔ))
2、Java內(nèi)存模型
3、synchorized和volatile關(guān)鍵字
4、happen-before
5、鎖系列(內(nèi)容很多)
6、并發(fā)容器
(1)并發(fā)容器分類及其對(duì)比分析
(2)concurrentHashMap
(3)concurrentHashMap
(4)copyOnWriteArrayList
(5)ThreadLocal
(6)BlockingQueue(內(nèi)部很多)
7、線程池相關(guān)知識(shí)
8、并發(fā)工具類
(1)CountDownLatch
(2)CyclicBarrier
(3)Semaphore
(4)Exchanger
9、實(shí)戰(zhàn)
(1)生產(chǎn)者消費(fèi)者問題
(2)并發(fā)與設(shè)計(jì)模式
建議:對(duì)于并發(fā)編程我覺得他的地位應(yīng)該是處于最頂端,每一個(gè)知識(shí)點(diǎn)弄清楚掌握好就對(duì)了,上面的也只是列出了一部分基礎(chǔ)。學(xué)習(xí)的時(shí)候遇到其他問題,弄清楚整理一下OK。還有一句,那就是最少要看到源碼級(jí)別才好。
第二階段會(huì)學(xué)習(xí)很長(zhǎng)一段時(shí)間,因?yàn)橹豢匆槐榻坛袒蛘呤乔靡槐榇a很難掌握,最好的方法就是把這些知識(shí)來回蹂躪,然后這一階段學(xué)習(xí)完之后,下一階段學(xué)習(xí)才算是真正的提高吧,全是一些框架這些。所以這一階段是分專題的,因?yàn)闆]有嚴(yán)格意義上的先后順序了,基本上就是用到哪一塊就學(xué)哪一塊就好了。第三階段要對(duì)一些主流的框架,進(jìn)行一個(gè)源碼分析。
第三階段
一、應(yīng)用服務(wù)器
1、Tomcat
2、Jboss
3、Jetty
4、Weblogic
建議:一開始學(xué)習(xí)的時(shí)候應(yīng)該都是先接觸的Apache的tomcat服務(wù)器,但是后面的框架學(xué)習(xí)中會(huì)發(fā)現(xiàn)也會(huì)認(rèn)識(shí)和接觸很多其他的服務(wù)器,而且百度指數(shù)上說這些服務(wù)器的份額還在不斷的飆升。
二、linux(工具)
1、常用命令和工具使用安裝
2、Linux權(quán)限、進(jìn)程等基礎(chǔ)
3、網(wǎng)路相關(guān)知識(shí),比如dns這些
4、shell腳本及編程
5、服務(wù)代理和集群
6、底層知識(shí)
建議:說實(shí)話linux就是一個(gè)操作系統(tǒng),也是我們的編程環(huán)境,把基礎(chǔ)知識(shí)弄清楚之后,在后面的學(xué)習(xí)中用到那個(gè)框架然后根據(jù)linux相結(jié)合就好。這一點(diǎn)可以在學(xué)習(xí)linux的時(shí)候按照運(yùn)維的教程來學(xué)習(xí),也比較全,上面的路線是我自己的,你可以根據(jù)自己的計(jì)劃來分配
三、分布式系統(tǒng)
0、分布式系統(tǒng)基礎(chǔ)知識(shí)
1、Dubbo
2、協(xié)調(diào)Zookeeper
3、消息中間件(四五個(gè)比較重要)
4、分布式緩存redis和MongoDB
5、springSession
6、高并發(fā)分流ngix
7、文件系統(tǒng)fastDFS
8、數(shù)據(jù)擴(kuò)容mycat
9、Docker
10、Kafka
建議:分布式框架是為了數(shù)據(jù)處理的更好更高效,這些框架也在不斷的更新,但是目前主流的大部分都在這,這些框架只要環(huán)境等等配置好,使用起來跑個(gè)基本案例很簡(jiǎn)單,剩下的就看自己的業(yè)務(wù)場(chǎng)景了,因?yàn)槲乙仓皇鞘褂昧似渲袔讉€(gè)。
四、微服務(wù)架構(gòu)
1、springBoot
(1)入門
(2)web基礎(chǔ)
(3)與其他各種框架的整合
(4)相關(guān)原理和注解
2、SpringCloud
建議:微服務(wù)這一塊里面的知識(shí)也很多,但是相對(duì)分布式來講還是簡(jiǎn)單很多,就按部就班的學(xué)習(xí)就好
五、安全
1、加密機(jī)制
2、shiro安全驗(yàn)證框架
3、其他安全知識(shí)
4、一致性算法
六、大數(shù)據(jù)和云計(jì)算
這一塊的知識(shí)是在之前上課的時(shí)候了解到的,因?yàn)樵诰W(wǎng)上看招聘信息的時(shí)候,經(jīng)常會(huì)提到一句,有大數(shù)據(jù)云計(jì)算等經(jīng)驗(yàn)者加分。因此將其列了進(jìn)來。
以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“初學(xué)者到Java架構(gòu)師學(xué)習(xí)路線”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
Java全套自學(xué)資料+視頻
新手Java安裝教程:http://www.dabaquan.cn/v106/
Java基礎(chǔ)視頻教程:http://www.dabaquan.cn/v104/
經(jīng)典Java基礎(chǔ)教程:http://www.dabaquan.cn/v19/
Java免費(fèi)視頻教程:http://www.dabaquan.cn/v61/
Javaweb開發(fā)基礎(chǔ)視頻
Javaweb開發(fā)視頻教程:http://www.dabaquan.cn/v77/
免費(fèi)html視頻教程:http://www.dabaquan.cn/v27/
全套css基礎(chǔ)教程:http://www.dabaquan.cn/v67/
Javascript視頻教程下載:http://www.dabaquan.cn/v68/
ajax視頻教程全集【免費(fèi)下載】:http://www.dabaquan.cn/v31/
菜鳥jquery教程下載:http://www.dabaquan.cn/v30/
Java編程框架視頻教程
SSM框架整合技術(shù):http://www.dabaquan.cn/v92/
Java架構(gòu)師相關(guān)視頻教程:
分布式限流實(shí)戰(zhàn)Java架構(gòu)師學(xué)習(xí)視頻:http://www.dabaquan.cn/v108/
MyBatis框架Java架構(gòu)師視頻教程:http://www.dabaquan.cn/v107/
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)