java技术学习路线(自用)

一:常见模式与工具

       1.常用设计模式:

                                  1.1.Proxy代理模式:指客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象。详见https://www.cnblogs.com/qifengshi/p/6566752.html

                                  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.html

                                  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体系化高级学习路线图》

原文地址:https://www.cnblogs.com/hachiman/p/9322507.html