在Java學(xué)習(xí)的過程中,很多朋友學(xué)著學(xué)著就迷失方向,主要是不知道怎樣去學(xué),找不到好的學(xué)習(xí)方法,下面為大家整理了一下三個階段的學(xué)習(xí)路線希望能對大家有所幫助。
第一階段:基礎(chǔ)階段
基礎(chǔ)階段我主要分為了四大塊內(nèi)容:
一、數(shù)據(jù)結(jié)構(gòu)與算法
1、簡單的數(shù)據(jù)結(jié)構(gòu)
(1)基礎(chǔ)概念(2)數(shù)組(3)鏈表、(4)隊列(5)棧
2、樹
(1)二叉樹(2)平衡二叉樹 (3)最優(yōu)二叉樹(哈夫曼樹) (4)紅黑樹 (5)B、B+、B*樹
(5)LSM樹
3、圖
(1)圖的基礎(chǔ)知識和兩種遍歷方式(2)最小生成樹 (Prim 算法 和 Kruskal 算法)
(3)最短路徑算法 (Dijkstra(迪杰斯特拉)算法和Floyd(弗洛伊德)算法)
(4)拓?fù)渑判?/p>
4、排序算法(8種排序算法和時間空間復(fù)雜度)
5、java中排序工具
(1)數(shù)組排序(2)集合工具類排序
6、常見算法
(1)字符串比較KMP算法(2)剪枝算法(3)布隆過濾器(4)回溯算法
二、java基礎(chǔ)
1、java集合
(1)各個java集合類(2)使用場景以及性能分析
2、常用類
(1)基礎(chǔ)類型封裝類(2)BeanUtil工具類(3)string系列類(4)java各種關(guān)鍵字(transient、final、static等等)(5)Math系列(6)system系列
3、javaIO
4、java泛型
5、多態(tài)以及實現(xiàn)原理(主要是內(nèi)存上的結(jié)構(gòu))
6、java注解和反射
7、java中的語法糖
8、java8、9、10新特性(主要是8)
9、java異常
10、其他零碎知識點(比如創(chuàng)建對象的4種方式)
三、設(shè)計模式
1、創(chuàng)建型模式(5種)
2、結(jié)構(gòu)性模式(7種)
3、行為性模式(11種)
四、JVM系列
1、jvm內(nèi)存結(jié)構(gòu)
2、類的加載機(jī)制
3、GC算法、分析、優(yōu)化、工具
以上這個階段看完了基本上就可以進(jìn)入下一階段了。第一個階段是最枯燥乏味的,當(dāng)然再上一個階段中假設(shè)你還學(xué)習(xí)了HTML、css、js、jsp+servlet+jdbc這些。如果沒有你可以先把這些學(xué)習(xí)了進(jìn)入下一個階段??赡芟駄vm系列這些在后面學(xué)習(xí)也可以,不過我覺得一開始就先明白更好
第二階段
一、SSM框架
(1)spring(先使用)(2)mybatis(3)springmvc(4)SSM整合(包括使用maven整合)
二、相關(guān)工具
(1)maven(2)git(3)IDEA(4)eclipse(5)日志框架(6)Jenkins
三、java并發(fā)編程(內(nèi)容比較多)
四、java網(wǎng)絡(luò)編程
(1)序列化(2)網(wǎng)絡(luò)編程基礎(chǔ)(主要看書、TCP/IP這些)(3)NIO(4)netty(5)遠(yuǎn)程調(diào)用(RMI、Thrift、gRPC)
五、數(shù)據(jù)庫
1、Mysql、Oracle
2、nosql(redis、MongoDB)
第二階段結(jié)束之后,我覺得應(yīng)該是分專題的,因為沒有嚴(yán)格意義上的先后順序了,基本上就是用到哪一塊就學(xué)哪一塊就好了。
第三階段
一、應(yīng)用服務(wù)器
1、Tomcat
2、Jboss
3、Jetty
4、Weblogic
二、linux(不需要完成整個運維師的知識、會使用和底層原理)
三、分布式系統(tǒng)(這里面內(nèi)容很多、框架也很多)
(1)Dubbo(2)Zookeeper(3)三大消息中間件(4)分布式緩存(5)springSession
(6)高并發(fā)分流ngix(7)文件系統(tǒng)fastDFS(8)數(shù)據(jù)擴(kuò)容mycat(9)Docker等等
四、微服務(wù)架構(gòu)
(1)springBoot(2)SpringCloud等等
五、安全
1、加密機(jī)制
2、shiro安全驗證框架
3、其他安全知識
4、一致性算法
其他的還有大數(shù)據(jù)與云計算等等框架。