java技術學習路線(自用)

一:常見模式與工具html

       1.經常使用設計模式:算法

                                  1.1.Proxy代理模式:指客戶端並不直接調用實際的對象,而是經過調用代理,來間接的調用實際的對象。詳見https://www.cnblogs.com/qifengshi/p/6566752.htmlsql

                                  1.2.Factory工廠模式:這種類型的設計模式屬於建立型模式,它提供了一種建立對象的最佳方式。在工廠模式中,咱們在建立對象時不會對客戶端暴露建立邏輯,而且是經過使用一個共同的接口來指向新建立的對象。詳見https://www.cnblogs.com/cxxjohnson/p/6403938.html數據庫

                                  1.3Singleton單例模式:這種類型的設計模式屬於建立型模式,它提供了一種建立對象的最佳方式。這種模式涉及到一個單一的類,該類負責建立本身的對象,同時確保只有單個對象被建立。這個類提供了一種訪問其惟一的對象的方式,能夠直接訪問,不須要實例化該類的對象。詳見https://www.cnblogs.com/edisonchou/p/6618503.html設計模式

                                  1.4.Delegate委派模式:有兩個對象參與處理同一個請求,接受請求的對象將請求委託給另外一個對象來處理,詳見https://blog.csdn.net/shb2058/article/details/53895024跨域

                                  1.5.Strategy策略模式: 屬於對象的行爲模式。其用意是針對一組算法,將每個算法封裝到具備共同接口的獨立的類中,從而使得它們能夠相互替換。策略模式使得算法能夠在不影響到客戶端的狀況下發生變化。詳見https://www.cnblogs.com/whoislcj/p/5554541.html緩存

                                  1.6.Prototype原型模式:是一種建立型設計模式,它主要面對的問題是:「某些結構複雜的對象」的建立工做;因爲需求的變化,這些對象常常面臨着劇烈的變化,可是他們卻擁有比較穩定一致的接口。詳見https://www.cnblogs.com/kid-li/archive/2006/05/18/403559.htmltomcat

                                  1.7.Template模板模式:完成一件事情,有固定的數個步驟,可是每一個步驟根據對象的不一樣,而實現細節不一樣;就能夠在父類中定義一個完成該事情的總方法,按照完成事件須要的步驟去調用其每一個步驟的實現方法。每一個步驟的具體實現,由子類完成。詳見https://www.cnblogs.com/qq-361807535/p/6854191.html性能優化

         2.Spring5作應用必不可少的最新框架:服務器

                                   2.1.IOC容器設計原理及高級特性

                                   2.2.AOP原理設計

                                   2.3.FactoryBean和BeanFactory

                                   2.4.Sring事務處理機制

                                   2.5.基於SringJDBC手寫ORM框架

                                   2.6.SringMVC九大組件

                                   2.7.手寫實現SringMVC框架

                                   2.8.SringMVC與Struts2對比分析

                                   2.9.Sring5新特性

          3.MyBatis玩數據庫必不可少的插件:

                                   3.1.代碼自動生成器

                                   3.2.MyBatis關聯查詢、嵌套查詢

                                   3.3.緩存使用場景及選擇策略

                                   3.4.Spring集成下的SqlSession

                                   3.5.Mapper MyBatis的事務

                                   3.6.分析MyBatis的動態代理的真正實現

                                   3.7.手寫實現Mini版的MyBatis

二:工程化與工具:Maven:項目管理

                                Jenkins:持續集成

                                Sonar:代碼質量管理

                                Git:版本管理

三:分佈式架構:

                              1.分佈式架構原理:

                                                            1.1.什麼是Git以及Git的工做原理

                                                            1.2.Git經常使用命令Beat Practise

                                                            1.3.Git衝突怎麼引發的、如何解決

                                                            1.4.架構師職責:Git Flow規範團隊Git使用規程

                               2.分佈式架構策略:

                                                             2.1.分佈式架構網絡通訊原理剖析

                                                             2.2.通訊協議中的序列化和反序列化

                                                             2.3.基於框架的RPC技術 WebService / RMI / Hession

                                                             2.4.深刻分析Zookeeper再disconf配置中心的應用

                                                             2.5.基於Zookeeper實現分佈式服務器動態上下線感知

                                                             2.6.深刻分析Zookeeper Zab協議以及選機制源碼解讀

                                                             2.7.Dubbo管理中心及監控平臺安裝部署

                                                             2.8.基於Dubbo的分佈式系統架構實踐

                                                             2.9.Dubbo容錯機制及高擴展性分析

                                3.分佈式架構中間件: 

                                                             3.1.分佈式消息通訊 ActiveMQ / Kafka / RabbitMQ 

                                                             3.2.Redis主從複製原理及無磁盤複製分析

                                                             3.3.圖解Redis中AOF和RDB持久化策略的原理

                                                             3.4.MongoDB企業級集羣解決方法

                                                             3.5.MongoDB數據分片、轉存及恢復策略

                                                             3.6.基於OpenResty部署應用層Nginx以及Nginx+lua實踐

                                                             3.7.Nginx反向代理服務器及負載均衡服務配置實戰

                                                             3.8.基於Netty實現高性能M聊天

                                                             3.9.基於Netty實現Dubbo多協議通訊支持

                                                             3.10.Netty無鎖串行設計及高併發處理機制

                                 4.分佈式架構實戰:

                                                             4.1.分佈式全局ID生成方案

                                                             4.2.Session跨域共享及企業級單位單點登陸解決方案實戰

                                                             4.3.分佈式事務解決方案實戰

                                                             4.4.高併發下的服務器降級、限流實戰

                                                             4.5.基於分佈式架構下分佈式鎖的解決方案實戰

                                                             4.6.分佈式架構下實現分佈式定時調整

四:Docker虛擬化:

                               1.Docker的鏡像、倉庫、容器

                               2.Docker Flie構建LNVP環境部署我的博客Wordpress

                               3.Docker Compose構建LNVP環境部署我的博客Wordpress

                               4.Docker網絡組成、路由互聯、Openvswitch

五:性能優化:

                               1.理解性能基準:

                                                          1.1.性能基準

                                                          1.2.衡量維度

                                2.JVM調優:

                                                          2.1.什麼是jvm調優,如何實現

                                                          2.2.詳解什麼是jvm運行時數據

                                                          2.3.詳解什麼是jvm內存模式JMM

                                                          2.4.詳解GC可達

                                                          2.5.詳解各垃圾回收器使用場景(Throughput \ CMS )

                                                          2.6.詳解GC日誌,從日誌看端倪

                                                          2.7.實戰MAT分析dump文件

                                3.Tomcat調優:

                                                          3.1.Tomcat工做機制

                                                          3.2.分析tomcat線程模式

                                                          3.3.tomcat系統參數認識調優

                                                          3.4.基準測試

                                4.Mysql調優篇:

                                                         4.1.理解Mysql底層B+Tree機制

                                                         4.2.SQL執行計劃詳解

                                                         4.3.索引優化詳解

                                                         4.4.sql語句優化

六:底層知識:

                                1.Java內存模型JMM

                                2.內存模型

                                3.Synchronized

                                4.Volatile

                                5.Dcl

                                6.併發基礎

                                7.鎖

                                8.併發工具類

                                9.併發集合

                                10.原子操做

                                11.引用類型

                                12.線程池

本文參考微信公衆號」Java知音「的文章--《Java體系化高級學習路線圖》

相關文章
相關標籤/搜索