一:常見模式與工具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體系化高級學習路線圖》