您現在的位置:首頁行業資訊

Java小白到架構師學習路線「2.0版」--中享思途

前言
“學習真的是一個循序漸進的過程,也是一件需要堅持的事情。對于這篇文章,不同階段的人可能有不同的理解,所以我花了幾天的時間整理了一套學習路線提供給大家,以供參考。下面的這個學習路線適合剛剛學習了Java還沒有深入、或者是想進一步提高的同學”
我大概把學習流程分了三個階段。
第一階段:基礎階段
基礎階段我主要分為了四大塊內容:
一、數據結構與算法
1、簡單的數據結構
(1)基礎概念
(2)數組
(3)鏈表
(4)隊列
(5)棧
2、樹
(1)平衡二叉樹
(2)最優二叉樹(哈夫曼樹)
(3)紅黑樹
(4)B、B+、B*樹
(5)LSM樹
3、圖
(1)圖的基礎知識
(2)圖的遍歷(兩種)
(2)最小生成樹 (Prim 算法 和 Kruskal 算法)
(3)最短路徑算法 (Dijkstra(迪杰斯特拉)算法和Floyd(弗洛伊德)算法)
(4)拓撲排序
4、排序算法(掌握基本實現和變形實現)
(1)選擇排序
(2)冒泡排序
(3)插入排序
(4)快速排序
(5)歸并排序
(6)希爾排序
(7)堆排序
(8)基數排序
(9)桶排序
(10)排序算法比較分析
5、java中排序工具
(1)數組排序
(2)集合工具類排序
6、常見算法
(1)字符串比較KMP算法
(2)剪枝算法
(3)布隆過濾器
(4)回溯算法
建議:對于數據結構,要掌握使用JAVA語言去描述數據結構和常見的算法操作。
二、java基礎
1、java集合
(1)總體框架
(2)collection架構
(3)List系列(ArrayList、fail-fast原理、LinkedList、Vector、Stack)
(4)Map系列(HashMap、HashTable、TreeMap、WeakHashMap、LinkHashMap)
(5)set系列(HashSet、TreeSet)
(6)Interator和Enumeration
(7)集合的使用場景和對比分析
2、常用類
(1)基礎類型封裝類
(2)BeanUtil工具類
(3)string系列類
(4)java各種關鍵字(transient、final、static等等)
(5)Math系列
(6)system系列
3、Java其他知識點
(1)javaIO
(2)java泛型
(3)Java多態
(4)java注解
(5)Java反射
(6)java中的語法糖
(7)java8、9、10新特性(主要是8)
(8)java異常
(9)創建類的4種方式
(10)String類型為什么不可變
(11)枚舉類型
建議:對于Java基礎,可以先了解到Java的源碼級別,但是學過了Java虛擬機之后,要能夠從jvm的內存角度等去分析和理解
三、設計模式
1、創建型模式(5種)
2、結構性模式(7種)
3、行為性模式(11種)
建議:設計模式主要是在工作中使用,最主要的是了解其思想,然后靈活的使用,但是從設計模式衍生出的知識點是面試常問知識點。
四、JVM系列
1、jvm內存結構
2、類的加載機制
3、GC算法、分析、優化、工具
4、編譯器
5、優化參數等等。
建議:了解兩個常見版本的jvm,java7和java8,然后對比分析去記憶,jvm是進階的一個必備知識,面試和工作中經常使用。
OK,上面就是Java學習的基礎階段。以上這個階段看完了基本上就可以進入下一階段了。第一個階段是最枯燥乏味的,但是當你學完了這些知識,再往下學習的時候,會發現對Java有一個全新的認識。對于這個階段我的整體建議是要硬著頭皮弄清楚。然后再開始下一個階段。
第二階段
零、預備知識
1、HTML+css+JavaScript
2、常見的前端框架Vue、React、Jquery等
3、jsp+servlet+jdbc
4、最簡單的小項目訓練一下。
建議:對于前端,你要弄清楚web的整個執行流程,前端要學會基本的使用。可以有一個精通、其他的了解,但是想要學得好就不要考慮學這個那個了,最好的方法就是全學了。學完了之后可以找個項目訓練一下,最主要的弄清楚原理機制。
一、SSM框架
(1)spring
(2)mybatis
(3)springmvc
(4)SSM整合(包括使用maven整合)
建議:對于這個階段其實也算是基礎階段,因為還有SSH框架,但是已經逐漸的不占優勢了,即使是這個SSM框架也正在被SpringBoot框架所取代,但是這三種框架的原理與思想是極其重要的。
二、相關工具
(1)maven
(2)git
(3)IDEA
(4)eclipse
(5)日志
(6)Jenkins等等
建議:說實話這些工具分類沒有嚴格的劃分,eclipse正在逐漸失去市場,但目前依然是idea和eclipse的天下,像vscode這些市場份額還是比較小的,具體的可以看一下百度指數或者自己搜一下,對于maven和git是一個開發者必要的工具。需要學的工具太多了,就先了解這個幾個常用的吧。
三、java網絡編程
1、Java網絡編程基礎
(1)計算機網絡基礎知識
(2)socket編程
(3)案例項目訓練
2、Java之NIO編程
3、序列化機制
(1)Java默認序列化機制
(2)序列化框架,比如protobuf等等
4、netty框架
5、Mina框架
6、其他通信框架,如grizzly、quickserver、xSocket等等
7、遠程調用
(1)rmi
(2)thrift
(3)gRPC等等
(4)corba
建議:這一小階段,我是書、教程、博客同時學習的,先把計算機網絡基礎知識弄清楚再往下學習,盡量每一個框架要了解其適用場景和各種場景下的使用
五、數據庫(有基礎知識)
1、Mysql、
2、Oracle
3、redis、
4、MongoDB
5、搜索引擎
(1)solr
(2)ElasticSearch
6、Memocached
建議:數據庫寫到這里總覺得不合時宜,因為第一階段學習了之后,在學習jdbc的時候就需要用到數據庫,這里的數據庫是要深入去理解的,比如說各種數據庫的性能優化。工作極其重要。在平時要了解這些數據庫的使用場景,然后用到那個,在著重去理解。
六、并發編程基礎
1、線程入門(概念、api等等相關基礎)
2、Java內存模型
3、synchorized和volatile關鍵字
4、happen-before
5、鎖系列(內容很多)
6、并發容器
(1)并發容器分類及其對比分析
(2)concurrentHashMap
(3)concurrentHashMap
(4)copyOnWriteArrayList
(5)ThreadLocal
(6)BlockingQueue(內部很多)
7、線程池相關知識
8、并發工具類
(1)CountDownLatch
(2)CyclicBarrier
(3)Semaphore
(4)Exchanger
9、實戰
(1)生產者消費者問題
(2)并發與設計模式
建議:對于并發編程我覺得他的地位應該是處于最頂端,每一個知識點弄清楚掌握好就對了,上面的也只是列出了一部分基礎。學習的時候遇到其他問題,弄清楚整理一下OK。還有一句,那就是最少要看到源碼級別才好。
第二階段會學習很長一段時間,因為只看一遍教程或者是敲一遍代碼很難掌握,最好的方法就是把這些知識來回蹂躪,然后這一階段學習完之后,下一階段學習才算是真正的提高吧,全是一些框架這些。所以這一階段是分專題的,因為沒有嚴格意義上的先后順序了,基本上就是用到哪一塊就學哪一塊就好了。第三階段要對一些主流的框架,進行一個源碼分析。
第三階段
一、應用服務器
1、Tomcat
2、Jboss
3、Jetty
4、Weblogic
建議:一開始學習的時候應該都是先接觸的Apache的tomcat服務器,但是后面的框架學習中會發現也會認識和接觸很多其他的服務器,而且百度指數上說這些服務器的份額還在不斷的飆升。
二、linux(工具)
1、常用命令和工具使用安裝
2、Linux權限、進程等基礎
3、網路相關知識,比如dns這些
4、shell腳本及編程
5、服務代理和集群
6、底層知識
建議:說實話linux就是一個操作系統,也是我們的編程環境,把基礎知識弄清楚之后,在后面的學習中用到那個框架然后根據linux相結合就好。這一點可以在學習linux的時候按照運維的教程來學習,也比較全,上面的路線是我自己的,你可以根據自己的計劃來分配
三、分布式系統
0、分布式系統基礎知識
1、Dubbo
2、協調Zookeeper
3、消息中間件(四五個比較重要)
4、分布式緩存redis和MongoDB
5、springSession
6、高并發分流ngix
7、文件系統fastDFS
8、數據擴容mycat
9、Docker
10、Kafka
建議:分布式框架是為了數據處理的更好更高效,這些框架也在不斷的更新,但是目前主流的大部分都在這,這些框架只要環境等等配置好,使用起來跑個基本案例很簡單,剩下的就看自己的業務場景了,因為我也只是使用了其中幾個。
四、微服務架構
1、springBoot
(1)入門
(2)web基礎
(3)與其他各種框架的整合
(4)相關原理和注解
2、SpringCloud
建議:微服務這一塊里面的知識也很多,但是相對分布式來講還是簡單很多,就按部就班的學習就好
五、安全
1、加密機制
2、shiro安全驗證框架
3、其他安全知識
4、一致性算法
六、大數據和云計算
這一塊的知識是在之前上課的時候了解到的,因為在網上看招聘信息的時候,經常會提到一句,有大數據云計算等經驗者加分。因此將其列了進來。

【關鍵詞:青島Java培訓,Java就業培訓,學Java開發多少錢,Java培訓哪家好,中享思途】
? st_bottom
青島Java培訓,青島HTML5培訓,青島UI培訓,青島Python培訓,青島IT培訓,java培訓,ui培訓,HTML5培訓,python培訓,java就業培訓,專業ui設計,前端開發培訓,IT培訓,思途教育,青島思途,中享思途
Copyright ? 青島思途共享科技信息服務有限公司 魯ICP備14027489號
青島Java培訓,青島HTML5培訓,青島UI培訓,青島Python培訓,青島IT培訓,java培訓,ui培訓,HTML5培訓,python培訓,java就業培訓,專業ui設計,前端開發培訓,IT培訓,思途教育,青島思途,中享思途
今天上海福彩时时乐开奖结果