java技术学习路线(自用)

Wesley13
• 阅读 344

一:常见模式与工具

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

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
java模式之一
代理模式的概念:对其他对象提供一种代理以控制对这个对象的访问代理模式的三种实现(1)静态代理静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者是继承相同父类.eg publicinterfacePammerDao{   voiddomain();}publicTargetimpl
Wesley13 Wesley13
2年前
java的动态代理
1\.什么是动态代理代理模式是为了提供额外或不同的操作,而插入的用来替代”实际”对象的对象,这些操作涉及到与”实际”对象的通信,因此代理通常充当中间人角色。Java的动态代理比代理的思想更前进了一步,它可以动态地创建并代理并动态地处理对所代理方法的调用。在动态代理上所做的所有调用都会被重定向到单一的调用处理器上,它的工作是揭示调用的类型并确定相
Easter79 Easter79
2年前
Spring的两种代理JDK和CGLIB的区别浅谈
一、原理区别:java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP 2、如果目标对象实现了接口,可以
Stella981 Stella981
2年前
Netty RPC的简易DEMO
这个是rpc远程调用的简单demo:Consumer通过rpc远程调用Provider的服务方法sayHelloWorld(Stringmsg),然后Provider返回""HelloWorld"给Consumer。这里采用netty来实现远程通信实现rpc调用,消费者通过代理来进行远程调用远程服务。本文涉及的知识点有代理模式,jd
Wesley13 Wesley13
2年前
Java技术学习路线图
一:常见模式与工具学习Java技术体系,设计模式,流行的框架与组件是必不可少的:常见的设计模式,编码必备Spring5,做应用必不可少的最新框架MyBatis,玩数据库必不可少的组件!实用的Java后端路线图(月薪40k)(https://oscimg.oschina.net/oscnet/dcbfc5de0fd4
Easter79 Easter79
2年前
Spring的AOP逐层深入——AOP的基本原理(六)
什么是AOP    AOP(AspectOrientedProgramming),意思是面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP基于IoC基础,是对OOP(ObjectOrientedProgramming,面向对象)的延续。同时,AOP实际是GOF设计模式的延续,设计模式孜孜不倦
Stella981 Stella981
2年前
Python之设计模式
一、设计模式分类a、创建型模式简单工厂模式一、内容不直接向客户端暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品类的实例。二、角色工厂角色(Creator)抽象产品角色(Product)具体产品角色(ConcreteProduct)
Wesley13 Wesley13
2年前
Java中jdk代理和cglib代理
代理模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。在Java中代理模式从实现方式上可以分为两个类别:静态代理和动态代理静态代理:也就是我们学习设计模式之代理模式时常见的事例,具体不在赘述,参见:
Wesley13 Wesley13
2年前
JavaWeb之动态代理解决request请求编码问题
动态代理解决编码问题1.设计模式出现原因:软件开发过程中,遇到相似问题,将问题的解决方法抽取模型(套路)常见设计模式:单例,工厂,适配器,装饰者,动态代理。2.装饰者模式简单介绍谷歌汽车开发场景1.Java定义了汽车开发约定interfaceICar{s
Wesley13 Wesley13
2年前
Java代理模式的实现方式
代理模式是23种设计模式之一,定义为:为其他对象提供一种代理以控制对这个对象的访问。简单来说就是在调用方无感知的情况下,修改原有的行为。\TOC\静态代理即通过手动编码方式实现publicinterfaceIFooService{voidfoo();}publicclass