自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 java常用设计模式 ----代理模式(史上最全)

彻底搞懂代理模式实现原理一、什么是代理模式代理模式主要是对我们方法执行之前和之后实现增强二、代理模式应用场景日志的采集权限控制实现aopMybatis mapperSpring的事务全局捕获异常Rpc远程调用接口分布式事务原理代理数据源三、代理模式实现的原理代理模式主要包含三个角色,即抽象主题角色(Subject)、委托类角色(被代理角色,Proxied)以及代理类角色(Proxy),如上图所示:抽象主题角色:可以是接口,也可以是抽象类;委托类角色:真实主题角色,业务逻辑

2020-05-29 19:34:31 534

原创 java常用设计模式 ----装饰者模式(简单易懂)

装饰者模式一、什么是装饰者模式在不改变原有功能的基础上附加功能,相比生成子类更灵活。二、装饰者模式应用场景动态的给一个对象添加或者撤销功能。多级缓存设计mybatis中一级与二级缓存IO流三、装饰者模式定义(1)抽象组件:定义一个抽象接口,来规范准备附加功能的类(2)具体组件:将要被附加功能的类,实现抽象构件角色接口(3)抽象装饰者:持有对具体构件角色的引用并定义与抽象构件角色一致的接口(4)具体装饰:实现抽象装饰者角色,负责对具体构件添加额外功能。装饰者模式类图四、装饰者

2020-05-28 16:31:00 280

原创 【算法排序】-冒泡排序

【算法排序】-冒泡算法

2022-11-04 16:20:59 130 1

原创 并发高级篇(一)----volatile原理分析

volatile原理分析一、什么是 volatile能够保证线程可见性,当一个线程修改共享变量时,能够保证对另外一个线程可见性,但是注意他不能够保证共享变量的原子性问题。二、volatile的特性可见性能够保证线程可见性,当一个线程修改共享变量时,能够保证对另外一个线程可见性顺序性程序执行程序按照代码的先后顺序执行。原子性即一个操作或者多个操作 要么全部执行,要么都不执行。三、volatile可见性public class Test001 extends Thread { /*

2020-08-06 10:17:27 216

原创 并发基础篇(二)----多线程之间如何同步

多线程之间如何同步一、什么是线程安全当多个线程同时共享同一个全局变量做写的操作时候,可能会受到其他线程的干扰。二、如何解决线程安全问题public class TicketThread implements Runnable { private int count = 100; @Override public void run() { while (count > 0) { try { Thr

2020-08-03 13:49:17 289

原创 并发基础篇(一)----多线程基本概念

多线程基本概念一、什么是进程进程就是系统中正在运行的一个程序,程序一旦运行就是一个进程,在一个进程中可以开启多个不同的线程执行。二、什么是多线程在同一个进程开启了多条不同的执行路径,每条执行路径就是一个线程,多条不同路径同时执行。三、使用多线程的好处使用多线程可以提高程序效率快速响应给客户端,给用户更加好的体验每个线程之间相互不影响四、使用多线程的应用场景使用多线程实现异步发送短信使用多线程实现异步的记录日志使用多线程处理一些比较耗时间的业务逻辑五、单线程与多线程之间的区别

2020-07-31 10:09:22 164

原创 java常用设计模式 ----Builder建造者模式(简单易懂)

建造者模式一、什么是建造者模式在不改变原有功能的基础上附加功能,相比生成子类更灵活。二、建造者模式应用场景动态的给一个对象添加或者撤销功能。多级缓存设计mybatis中一级与二级缓存IO流三、装饰者模式定义(1)抽象组件:定义一个抽象接口,来规范准备附加功能的类(2)具体组件:将要被附加功能的类,实现抽象构件角色接口(3)抽象装饰者:持有对具体构件角色的引用并定义与抽象构件角色一致的接口(4)具体装饰:实现抽象装饰者角色,负责对具体构件添加额外功能。装饰者模式类图四、装饰者

2020-06-04 20:08:05 246

原创 java常用设计模式 ----适配器模式(简单易懂)

适配器模式一、什么是适配器模式定义:将一个系统的接口转换成另外一种形式,从而使原来不能直接调用的接口变得可以调用。二、适配器模式角色划分适配器模式涉及3个角色:源(Adaptee):需要被适配的对象或类型, 旧版本或者苹果手机插口适配器(Adapter):连接目标和源的中间对象,相当于插头转换器,新版本与老版本能够实现兼容目标(Target):期待得到的目标, 新版本或者圆子头耳机适配器模式包括3种形式:类适配器模式、对象适配器模式、接口适配器模式(或又称作缺省适配器模式)。三、适配器模式

2020-06-03 14:41:08 524

原创 java常用设计模式 ----策略模式(简单易懂)

策略模式一、什么是策略模式策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理,最终可以实现解决多重if判断问题。环境(Context)角色:持有一个Strategy的引用。抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。具体策略(ConcreteStrategy)角色:包装了相关的算法或行为。定义策略接口->实现不同的策略类->利用多态或其他方式调用策略二、策略模式优缺点优点

2020-06-03 14:40:16 405

原创 java常用设计模式 ----责任链模式(简单易懂)

责任链模式一、什么是责任链模式客户端发出一个请求,链上的对象都有机会来处理这一请求,而客户端不需要知道谁是具体的处理对象。这样就实现了请求者和接受者之间的解耦,并且在客户端可以实现动态的组合职责链。使编程更有灵活性。定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。其过程实际上是一个递归调用。要点主要是:有多个对象共同对一个任务进行处理。这些对象使用链式存储结构,形成一个链,每个对象知道自己的下一

2020-06-01 20:05:04 221

原创 java常用设计模式 ----单例模式(简单易懂)

单例模式一、什么是单例模式单例模式确保一个类只有一个实例,并提供一个全局访问点,实现单例模式的方法是私有化构造函数,通过getInstance()方法实例化对象,并返回这个实例二、单例模式应用场景项目中定义的配置文件Servlet对象默认就是单例线程池、数据库连接池Spring中Bean对象默认就是单例实现网站计数器Jvm内置缓存框架(定义单例HashMap)定义枚举常量信息三、单例模式优缺点优点:能够节约当前堆内存,共享资源,全局使用,不需要频繁New对象,能够快速访问,提高性

2020-06-01 17:46:23 222

原创 java常用设计模式 ----观察者模式(简单易懂)

观察者模式一、什么是观察者模式在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。二、观察者模式应用场景Zookeeper事件通知节点消息订阅通知安卓开发事件注册分布式配置中心三、观察者模式定义抽象被观察者角色:也就是一个抽象主题,它把所有对观察者对象的引用保存在一个集合中,每个主题都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察

2020-05-29 19:33:27 184

原创 java常用设计模式 总览

java常用设计模式 总览一、设计模式分为3大类1、创建型模式2、结构型模式3、行为模式二、设计模式的六大原则1、开闭原则(Open Close Principle)2、里氏代换原则(Liskov Substitution Principle)3、依赖倒转原则(Dependence Inversion Principle)4、接口隔离原则(Interface Segregation Principle)5、迪米特法则(最少知道原则)(Demeter Principle)6、合成复用原则(Composite

2020-05-28 11:56:00 170

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除