自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 InnoDB存储引擎内存模型与磁盘同步

InnoDB存储引擎内存模型与磁盘同步

2023-11-04 16:38:41 109

原创 如何安装部署rabbitmq

rabbitmq安装笔记链接

2021-08-29 18:29:23 107

原创 == 和 equals 的区别

java中常用== 和 equals 来对两个对象进行比较,下面我们来探讨下两者的区别: equals 一个是方法,而 == 是运算符。 == 如果比较的是基本数据类型,则比较的是数值是否相等;如果比较的是引用数据类型,则比较的是对象的地址值是否相等。 equals() 用来比较两个对象的内容是否相等。 如果没有对 equals 方法进行重写,默认比较的是引用类型的变量所指向的对象的地址,像我们常用的String,Long,ArrayList等对象已经进行了重写,所以可以拿来直

2021-03-11 17:50:41 399

原创 centOS安装docker(在线)

1.yum 包更新到最新sudo yum update2.安装需要的软件包sudo yum install -y yum-utils device-mapper-persistent-data lvm23.设置yum源为阿里云sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo4.安装dockersudo yum install docker-c

2021-02-18 16:13:11 104

原创 数据库设计-数据类型优化

MySQL支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要。不管存储哪种类型的数据,下面几个简单的原则都有助于做出更好的选择。更小的通常更好一般情况下,应该尽量使用可以正确存储数据的最小数据类型。更小的数据类型通常更快,因为它们占用更少的磁盘、内有和CPU缓存,并且处理时需要的CPU周期也更少。简单就好简单数据类型的操作通常需要更少的CPU周期。例如,整型比字符操作代价更低,因为字符集和校对规则(排序规则)使字符比较比整型比较更复杂。这里有两个例子:,一个是应该使用MySQL内建的类

2021-01-30 23:09:12 111

原创 MySql查询执行过程分析

MySql执行过程分析MySQL 的逻辑架构图连接器缓存查询MySQL 的逻辑架构图删除是大V是连接器阿擦擦缓存查询

2021-01-30 20:33:53 382 4

原创 责任链模式(Chain of Responsibility Pattern)简介

定义责任链模式(Chain of Responsibility Pattern)是将链中每一个节点看作是一个对象,每个节点处理的请求均不同,且内部自动维护一个下一节点对象。当一个请求从链式的首端发出时,会沿着链的路径依次传递给每一个节点对象,直至有对象处理这个请求为止。属于行为型模式。应用场景责任链模式主要是解耦了请求与处理,客户只需将请求发送到链上即可,无需关心请求的具体内容和处理细节,请求会自动进行传递直至有节点对象进行处理。适用于以下应用场景:1、多个对象可以处理同一请求,但具体由哪个对象处理

2020-09-10 20:27:06 327

原创 迭代器模式(lterator Pattern)简介

定义迭代器模式(lterator Pattern)又称为游标模式(Cursor Pattern),它提供一种顺序访问集合或容器对象元素的方法,而又无须暴露集合内部表示。迭代器模式可以为不同的容器提供一致的遍历行为,而不用关心容器内容元素组成结构,属于行为型模式。适用场景我们把多个对象聚在一起形成的总体称之为集合,集合对象是能够包容一组对象的容器对象。不同的集合其内部元素的聚合结构可能不同,而迭代器模式屏蔽了内部元素获取细节,为外部提供一致的元素访问行为,解耦了元素迭代与集合对象间的耦合,并且通过提供不

2020-09-08 09:37:43 267

原创 命令模式(Command Pattern)简介

标题命令模式(Command Pattern)是对命令的封装,每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式解耦了请求方和接收方,请求方只需请求执行命令,不用关心命令是怎样被接收,怎样被操作以及是否被执行等。命令模式属于行为型模式。适用场景当系统的某项操作具备命令语义时,且命令实现不稳定(变化),那么可以通过命令模式解耦请求与实现,利用抽象命令接口使请求方代码架构稳定,封装接收方具体命令实现细节。接收方与抽象命令接口呈现弱耦合(内部方法无需一致),

2020-09-07 14:02:57 275

原创 策略模式(Strategy Pattern)简介

定义策略模式(Strategy Pattern)又叫也叫政策模式(Policy Pattern),它是将定义的算法家族、分别封装起来,让它们之间可以互相替换,从而让算法的变化不会影响到使用算法的用户。属于行为型模式。应用场景策略模式可以解决在有多种算法相似的情况下,使用if…else 或switch…case 所带来的复杂性和腌肿性。在日常业务开发中,策略模式适用于以下场景:1、针对同一类型问题,有多种处理方式,每一种都能独立解决问题;2、算法需要自由切换的场景;3、需要屏蔽算法规则的场景。代

2020-09-06 08:07:59 713 1

原创 模板方法模式(Template Method Pattern)简介

定义模板方法模式(Template Method Pattern)又叫模板模式,是指定义一个算法的骨架(业务的步骤),而将一些步骤延迟到子类中去实现,使得子类可以不改变这个算法的结构便可重新定义(重写)该算法的某些特定步骤,属于行为型设计模式。模板方法模式实际上是封装了一个固定流程,该流程由几个步骤组成,具体步骤可以由子类进行不同实现,从而让固定的流程产生不同的结果。它非常简单,其实就是类的继承机制,但它却是一个应用非常广泛的模式。模板方法模式的本质是抽象封装流程,具体进行实现。应用场景模板方法模式

2020-09-05 19:21:51 482

原创 委派模式(Delegate Pattern)简介

定义委派模式又叫委托模式,是一种面向对象的设计模式,允许对象组合实现与继承相同的代码重用。它的基本作用就是负责任务的调用和分配任务,是一种特殊的静态代理,可以理解为全权代理,但是代理模式注重过程,而委派模式注重结果。委派模式属于行为型模式,不属于GOF23种设计模式中。应用场景1.委派对象本身不知道如何处理一个任务或请求,而交给其他对象来处理;2.实现程序的解耦代码实现public class Boss { public void command(String task,Leader l

2020-09-01 22:21:56 358

原创 桥接模式(Bridge Pattern)简介

定义桥接模式也称为桥梁模式、接口(Interfce)模式或柄体(Handle and Body)模式,是将抽象部分与它的具体实现部分分离,使它们都可以独立地变化,属于结构型模式。桥接模式主要目的是通过组合的方式建立两个类之间的联系,而不是继承。但又类似于多重继承方案,但是多重继承方案往往违背了类得单一职责原则,其复用性比较差,桥接模式是比多重继承更好的替代方案。桥接模式的核心在于解耦抽象和实现。注:此处的抽象并不是指抽象类或接口这种高层概念,实现也不是继承或接口实现。抽象与实现其实指的是两种独立变化的

2020-09-01 21:21:14 371

原创 适配器模式(Adapter Pattern)简介

定义适配器模式又叫做变压器模式,它的功能是将一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而导致无法在一起工作的两个类能够一起工作,属于结构型设计模式。适用场景提供一个转换器(适配器),将当前系统存在的一个对象转化为客户端能够访问的接口对象。适配器适用于以下几种业务场景:1.已经存在的类,它的方法和需求不匹配(方法结果相同或相似)的情况。2.适配器模式不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、不同厂家造成功能类似而接口不相同情况下的解决方案。生活中也非常的应

2020-08-29 08:07:46 334

原创 组合模式(Composite Pattern)简介

定义组合模式也称为整体-部分(Part-Whole)模式,它的宗旨是通过将单个对象(叶子节点)和组合对象(树枝节点)用相同的接口进行表示,使得客户对单个对象和组合对象的使用具有一致性,属于结构型模式。应用场景当子系统与其内各个对象层次呈现树形结构时,可以使用组合模式让子系统内各个对象层次的行为操作具备一致性。客户端使用该子系统内任意一个层次对象时,无须进行区分,直接使用通用操作即可,为客户端的使用带来了便捷。组合模式常被用于以下应用场景:1.希望客户端可以忽略组合对象与单个对象的差异时;2.对象层

2020-08-26 22:21:05 391

原创 面试常见之String对象(==)比较

代码如下:public class StringTest { public static void main(String[] args) { String s1 = "hello"; String s2 = "hello"; String s3 = "he" + "llo"; String s4 = "hel" + new String("lo"); String s5 = new String("hello").

2020-08-24 21:45:22 327

原创 享元模式(Flyweight Pattern)简介

定义享元模式又称为轻量级模式,是对象池的一种实现。类似于线程池,线程池可以避免不停的创建和销毁多个对象,消耗性能。提供了减少对象数量从而改善应用所需的对象结构的方式。其宗旨是共享细粒度对象,将多个对同一对象的访问集中起来,不必为每个访问者创建一个单独的对象,以此来降低内存的消耗,属于结构型模式。享元模式把一个对象的状态分成内部状态和外部状态,内部状态是不变的,外部状态是变化的,通过共享不变的部分,达到减少对象数量并节约内存的目的。享元模式模式的本质是缓存共享对象,降低内存消耗。适用场景当系统中多处需

2020-08-24 21:10:11 215

原创 装饰器模式(Decorator Pattern)简介

定义装饰器模式(Decorator Pattern),也称为包装模式(Wrapper Pattern)是指在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式。应用场景装饰器模式在我们生活中应用也比较多,如给煎饼加鸡蛋;给蛋糕加上一些水果;给房子装修等,为对象扩展一些额外的职责。装饰器在代码程序中适用于以下场景:1.用于扩展一个类的功能或给一个类添加附加职责。2.动态的给一个对象添加功能,这些功能可以再动态的撤销。3.需要为一批的兄

2020-08-24 08:33:15 689

原创 门面模式(Facade Pattern)简介

定义门面模式(Facade Pattern)又叫外观模式,提供了一个统一的接口,用来访问子系统中的一群接口。其主要特征是定义了一个高层接口,让子系统更容易使用,属于结构性模式。应用场景1.子系统越来越复杂,增加门面模式提供简单接口2.构建多层系统结构,利用门面对象作为每层的入口,简化层间调用其实,在我们日常的编码工作中,我们都在有意无意地大量使用门面模式,但凡只要高层模块需要调度多个子系统(2个以上类对象),我们都会自觉地创建一个新类封装这些子系统,提供精简接口,让高层模块可以更加容易间接调用这些

2020-08-23 19:35:36 277

原创 代理模式(Proxy Pattern)简介

定义代理模式(Proxy Pattern)是指为其他对象提供一种代理,以控制对这个对象的访问,属于结构型模式。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。应用场景生活中的租房中介、售票黄牛、婚介、经纪人、快递、事务代理、非侵入式日志监听等,都是代理模式的实际体现。当无法或不想直接引用某个对象或访问某个对象存在困难时,可以通过代理对象来间接访问。使用代理模式主要有两个目的:一是保护目标对象,二是增强目标对象。基本组成代理模式一般由以下三

2020-08-23 17:40:42 286

原创 建造者模式(Builder Pattern)简介

定义建造者模式是将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示,属于创建型模式。使用建造者模式对于用户而言只需指定需要建造的类型就可以获得对象,建造过程及细节不需要了解。建造者模式适用于创建对象需要很多步骤,但是步骤的顺序不一定固定。如果一个对象有非常复杂的内部结构(很多属性),可以将复杂对象的创建和使用进行分离。应用场景建造者模式适用于一个具有较多的零件的复杂产品的创建过程,由于需求的变化,组成这个复杂产品的各个零件经常猛烈变化,但是它们的组合方式却相对稳定。建造者模式

2020-08-23 09:06:33 136

原创 工厂模式(Factory Pattern)简介

简单工厂模式 简单工厂模式(Simple Factory Pattern)是指由一个工厂对象决定创建出哪一种产品类的实例,但它不属于GOF23种设计模式。简单工厂适用于工厂类负责创建的对象较少的场景,且客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关心。简单工厂也有它的缺点:工厂类的职责相对过重,不易于扩展过于复杂的产品结构。 代码示例如下:public interface ICourse { void record();}public class JavaCour

2020-08-20 23:31:38 224

原创 Spring版本及常用商业软件版本说明

Spring版本命名说明:版本说明含义Snapshot快照版尚不稳定,处于开发中的版本Hermione GrangerGryffindor100Draco MalfoySlytherin90NameAcademyscoreHarry PotterGryffindor90Hermione GrangerGryffindor100Draco MalfoySlytherin90语义化版本命名通用规则:...

2020-08-20 10:54:16 538

原创 Spring概要

Spring的前世今生在2007年,一个基于java 语言的开源框架正式发布,取了一个非常有活力且美好的名字,叫做Spring。它是一个开源的轻量级Java SE(Java标准版本)/Java EE(Java企业版本)开发应用框架,其目的是用于简化企业级应程序开发。Spring 框架不仅能够帮我们管理对象及其依赖关系,具有像通用日志记录、性能统计、安全控制、异常处理等面向切面的能力,还可以处理最令人头疼的数据库事务,本身也提供了一套简单的JDBC访问实现,提供了与第三方数据访问框架集成(如Hiberna

2020-08-19 22:58:08 112

原创 原型模式(Prototype Pattern)简介

定义原型模式(Prototype Pattern)是指原型实例指定创建对象的 种类,并且通过拷贝这些原型创建新的对象。调用者不需要知道任何创建细节,不调用构造函数。属于创建型模式。使用场景1、类初始化消耗资源较多;2、new产生的一个对象需要非常繁琐的过程(数据准备、访问权限等);3、构造函数比较复杂。4、循环体中生产大量对象时,可读性下降。原型模式的应用也是比较广泛的,比如spring中的scope=“prototype”、JSON.parseObject()以及BeanUtils等。原型

2020-08-16 12:59:50 182

原创 单例模式(Singleton Pattern)简介

定义单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点(静态方法)。单例模式属于创建型模式。常见的ServletContext、ServletContextConfig、ApplicationContext以及数据库的连接池等都是以单例形式存在的。常见的单例模式饿汉式饿汉式单例是在类加载的时候就立即初始化,并且创建单例对象。绝对线程安全,在线程还没出现以前就是实例化了,不会存在访问安全问题。优点:没有加任何的锁、执行效率比较高,在用户

2020-08-15 17:53:40 452

原创 七大设计原则简介

开闭原则(Open-Closed Principle, OCP)是指一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。所谓的开闭,也正是对扩展和修改两个行为的一个原则。强调的是用抽象构建框架,用实现扩展细节。简而言之,就是说在添加一个功能应该在已有的代码基础上进行扩展,而不是修改已有代码。依赖倒置原则(Dependence Inversion Principle,DIP)是指设计代码结构时,高层模块不应该依赖底层模块,二者都应该依赖其抽象。抽象不应该依赖细节;细节应该依赖抽象。通过依赖倒置,可以减

2020-08-10 21:00:29 172

空空如也

空空如也

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

TA关注的人

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