自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

萧曳丶

多品味

  • 博客(120)
  • 资源 (321)
  • 收藏
  • 关注

原创 状态模式(State)

一、状态模式介绍状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。当遇到不同的状态遇到不同的行为的时候,可以使用状态模式状态模式UML图State(抽象状态类):定义

2018-01-31 22:16:22 167

原创 建造者模式(Builder和Director)

一、建造者模式介绍建造者模式:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 [构建与表示分离,同构建不同表示]假如一个对象的构建很复杂,需要很多步骤。则可以使用建造者模式,将其构建对象和组装成一个对象这两步给分开来。构建部分为(builder)和组织部分(director),实现了构建和装配的解耦。不同的构建器,相同的装配也可以做出不同的对象。

2018-01-31 22:16:14 566

原创 Spring的AOP介绍

AOP:(Aspect-Orlented-Programming)面向切面编程,和面向对象是互相补充的。面向对象是横着编程,面向切面则是竖着编程。1234@Before("execution(public void com.fz.annotation.service.impl.UserServiceImpl.u

2018-01-31 22:15:41 155

原创 适配器模式(Adpater)

一、适配器模式介绍适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。例如:NBA中的球员来自不同国家,而世界标准语言是英语。那他们不会英语,也不能各自学习所有国家的语言。所以,最好的办法就是请不同的翻译将这些球员国家的语言翻译成英语。而这些翻译就是适配器适配器模式分类:

2018-01-31 22:15:31 210

原创 单例模式(Singleton)

一、单例模式介绍单例模式:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。单例模式优点:1.只生成一个实例,系统开销比较小2.单例模式可以在系统设置全局的访问点,优化共享资源的访问。常见单例模式分类:主要:饿汉式(线程安全,调用效率高,但是不能延时加载)懒汉式(线程安全,调用效率不高,但是可以延时加载)其他:

2018-01-31 22:15:19 213

原创 工厂模式(Factory)

一、工厂模式介绍:工厂模式实现了创建者和调用者的分离工厂模式分类:1.简单工厂模式2.工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类​3.抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。面向对象设计的基本原则:OCP(开闭原则,Open-Closed

2018-01-31 22:15:04 242

原创 策略模式(Strategy)

一、策略模式介绍策略模式:它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。例如:商场中的收银软件,内部是怎么针对不同的商品打不同的折扣呢?又或者,是怎么根据不同会员等级打不同的折扣呢?其实内部就是定义了一个算法家族,给每个会员或者商品都指定一个特定的算法,根据不同的算法,打不同的折扣。策略模式UML图:

2018-01-31 22:13:57 188

原创 访问者模式(Visitor)

一、访问者模式介绍访问者模式(Visitor):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。也就是说:针对不同对象做一些不同的操作,则可以使用访问者模式。一般也很少用到!!​二、应用场景XML文档解析器设计编译器设计复杂集合对象的处理

2018-01-31 22:13:54 161

原创 解释器模式(Interpreter)

一、解释器模式介绍解释器模式:给定一个语言,定义它的文法一种表示。并定义一个解释器,这个解释器使用该表示来解释语言中的句子。也就是说,如果你想自己开发一种语言来解释执行某些语言的特定语法,可以考虑使用解释器模式。该模式对于我们开发人员来说,基本上都用不到。除非你想自己开发一种语言。解释器模式真正开发起来很难,就相当于自己开发了一种语言给别人用。解释器模式UM

2018-01-31 22:13:37 197

原创 开始-运行-命令大全

开始-运行-命令大全 1. gpedit.msc-----组策略 3. Nslookup-------IP地址侦测器 4. explorer-------打开资源管理器 5. logoff---------注销命令 6. tsshutdn-------60秒倒计时关机命令 7. lusrmgr.msc----本机用户和组 8. services.msc--- 

2018-01-31 22:13:28 162

转载 组合模式(Composite)

一、组合模式介绍组合模式:将对象组合成树形结构以表示:部分--整体 的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。java中的组合是指:在A类里定义一个B类的引用,A拥有了B,叫组合。只是单纯的组合而已,而不是一种设计模式。组合和组合模式不是一回事!基本上见到的树形结构都使用到了组合模式。组合模式结构图:组合模式中有几个核

2018-01-30 20:59:12 177

转载 享元模式(FlyWeight)

一、享元模式介绍享元模式(FlyWeight):运用共享技术有效的支持大量细粒度对象的重用。应用场景:如果项目中有很多完全相同或相似的对象,则可以使用享元模式,节省内存。享元对象能做到共享的关键就是区分了内部状态和外部状态。内部状态:可以共享,不会随环境变化而变化外部状态:不可以共享,会随环境变化而变化享元模式UML图Flyweigh

2018-01-30 20:59:09 212

转载 装饰器模式(Decorator)

一、装饰模式介绍装饰模式(decorator):表示动态的给一个对象添加一些新的功能(利用子类继承父类也可以实现),但是比生成子类方式更灵活。也叫装饰者模式或者装饰器模式例如:我们每个人身上穿的衣服,鞋子,领带,披风都可以理解为是对人的装饰。装饰器模式类图:Component:定义一个对象接口,可以给这些对象动态添加职责。真实对象和装饰者对象有相同的

2018-01-30 20:59:08 202

转载 命令模式(Command)

一、命令模式介绍命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志。以及支持可撤销的操作。说白了,就是将一系列的请求命令封装起来,不直接调用真正执行者的方法,这样比较好扩展。命令模式UML图:Command(抽象命令类):抽象出命令对象,可以根据不同的命令类型。写出不同的实现类ConcreteComm

2018-01-30 20:59:05 226

转载 外观模式(Facade)

一、外观模式介绍面向对象的一个比较重要的法则:迪米特法则(最少知识原则):一个软件实体应当尽可能少的与其他实体发生相互作用。外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口。这个接口使得这一子系统更加容易使用。说白了,就可以理解为封装外观模式的核心:为子系统提供统一的入口,封装子系统的复杂性,便于客户端调用例1:股民炒股未使用外观模

2018-01-30 20:58:45 163

转载 中介者模式(Mediator)

一、中介者模式介绍中介者模式:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显示地相互引用。从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式核心:1.就是将网状结构处理成星型结构      2.将多对多处理成一对多例如:世界上各个国家的和平和安全,沟通和交流等等问题,如果各个国家都可以互相交互的话,容易造成混乱,关系复杂。这个时候联

2018-01-30 20:58:32 223

转载 迭代器模式(Iterator)

一、迭代器模式介绍迭代器模式:提供一种方法顺序的访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。一般情况,我们自己开发时很少自定义迭代器,因为java本身已经把迭代器做到内部中了(比如:常用的list和set中都内置了迭代器)。当然,如果真有这种需求需要我们自定义迭代器的话,可以参考jdk的迭代器实现方式来实现自己的迭代器。迭代器是可以从前往后,或者从后往前

2018-01-30 20:58:27 148

转载 职责链模式(Chain of Responsibility)

一、责任链模式介绍责任链模式:将能够处理同一类请求的对象连成一条链,使这些对象都有机会处理请求,所提交的请求沿着链传递。从而避免请求的发送者和接受者之间的耦合关系。链上的对象逐个判断是否有能力处理该请求,如果能则就处理,如果不能,则传给链上的下一个对象。直到有一个对象处理它为止。场景:1、打牌时,轮流出牌2、接力赛跑3、请假审批4、公

2018-01-30 20:58:07 205

转载 桥接模式(Bridge)

一、桥接模式介绍:桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立的变化。而不会直接影响到其他部分。未使用桥接模式的抽象与实现结构图(如下):如果要增加一个apple品牌的电脑,则需要在台式机下新增一个apple的台式机在笔记本下新增一个apple笔记本,在pad下新增一个apple的pad。代码比较繁琐。如果使用桥接模式(如下图),使抽象部

2018-01-30 20:57:45 266

转载 Map 综述(二):彻头彻尾理解 LinkedHashMap

摘要:  HashMap和双向链表合二为一即是LinkedHashMap。所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Entry节点链入一个双向链表的HashMap。由于LinkedHashMap是HashMap的子类,所以LinkedHashMap自然会拥有HashMap的所有特性。比如,LinkedHashMap的元素存取过程基本与HashM

2018-01-29 22:26:13 154

转载 Map 综述(一):彻头彻尾理解 HashMap

摘要:  HashMap是Map族中最为常用的一种,也是 Java Collection Framework 的重要成员。本文首先给出了 HashMap 的实质并概述了其与 Map、HashSet 的关系,紧接着给出了 HashMap 在 JDK 中的定义,并结合源码分析了其四种构造方式。最后,通过对 HashMap 的数据结构、实现原理、源码实现三个方面的剖析,深入到它底层 Hash 存

2018-01-29 22:24:20 177

转载 Map 综述(三):彻头彻尾理解 ConcurrentHashMap

摘要:  ConcurrentHashMap是J.U.C(java.util.concurrent包)的重要成员,它是HashMap的一个线程安全的、支持高效并发的版本。在默认理想状态下,ConcurrentHashMap可以支持16个线程执行并发写操作及任意数量线程的读操作。本文将结合Java内存模型,分析JDK源代码,探索ConcurrentHashMap高并发的具体实现机制,包括其在

2018-01-29 22:22:47 205

转载 图解Java 垃圾回收机制

摘要:  Java技术体系中所提倡的 自动内存管理 最终可以归结为自动化地解决了两个问题:给对象分配内存 以及 回收分配给对象的内存,而且这两个问题针对的内存区域就是Java内存模型中的 堆区。关于对象分配内存问题,笔者的博文《JVM 内存模型概述》已经阐述了 如何划分可用空间及其涉及到的线程安全问题,本文将结合垃圾回收策略进一步给出内存分配规则。垃圾回收机制的引入可以有效的防止内存泄

2018-01-29 22:19:01 182

转载 深入理解Java对象的创建过程:类的初始化与实例化

摘要:  在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类构造器完成类的初始化。在类初始化过程中或初始化完毕后,根据具体情况才会去对类进行实例化。本文试图对JVM执行类初始化和实例化的过程做一个详细深入地介绍,以便从Java虚拟机的角度清晰解剖一个

2018-01-29 22:14:25 392

转载 HTTP协议详解

引言                                        HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of H

2018-01-29 22:08:37 232

转载 Struts2—工作原理图

本文以Struts2的官方工作原理图作为主线讲解(参考部分书籍与视频)1.初始概念  struts2是web.xml进行配置的一个过滤器,当web项目启动的时候,这个过滤器就会生效。2.web.xml 123456789101112

2018-01-29 22:03:39 235

转载 30个Oracle语句优化规则详解

1.选用适合的Oracle优化器,为优化器传递hint提示(/* First_rows*/)Oracle的优化器共有3种:a.RULE(基于规则)b.COST(基于成本)(定期的收集表的统计信息,之前遇到的问题就是统计信息与实际的数据相差太大)c.CHOOSE(选择性)设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RUL

2018-01-29 22:00:47 216

转载 简述数据库事务并发机制

摘要:  事务是最小的逻辑执行单元,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务具有四个重要特性,即原子性(Atomicity)、一致性(Consistency)、隔离性 (Isolation)和持久性 (Durability)。本文首先叙述了数据库中事务的本质及其四大特性(ACID)的内涵,然后重点介绍了事务隔离性的动机和内涵,并介绍了

2018-01-29 21:58:37 228

转载 Spring的AOP原理

一、什么是 AOPAOP(Aspect-OrientedProgramming,面向切面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为(日志、安全、事务)的时候,OOP则显得无能为力。也就是说,OOP允许你定义从

2018-01-29 21:48:41 179

转载 代理模式(Proxy)

一、代理模式介绍代理模式:为其他对象提供一种代理以便控制对这个对象的访问。可以详细控制访问某个类(对象)的方法,在调用这个方法前作的前置处理(统一的流程代码放到代理中处理)。调用这个方法后做后置处理。例如:明星的经纪人,租房的中介等等都是代理代理模式分类:1.静态代理(静态定义代理类,我们自己静态定义的代理类。比如我们自己定义一个明星的经纪人类)2.

2018-01-28 18:34:54 164

转载 spring aop中的propagation的7种配置

1.前言 在声明式的事务处理中,要配置一个切面,即一组方法,如[html] view plain copytx:advice id="txAdvice" transaction-manager="txManager">      tx:attributes>          tx:method name="find*" re

2018-01-28 12:23:40 203

转载 jQuery.ajax

参数参数名类型描述urlString(默认: 当前页地址) 发送请求的地址。typeString(默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET"。注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。timeoutNumber设置请求超时时间(毫秒)。此设置将覆盖全局设置。asyncBoolean(默认: true) ...

2018-01-28 12:18:05 181

转载 struts2+spring+mybatis框架整合详细介绍

一、问题的提出        最近一直在看各种主流javaweb框架,感触颇深,一个好的框架可以让你的程序代码变得相当的明了,也便于后期的维护!目前用到的主流框架包括struts2+spring+mybatis和spring+springmvc+mybatis(注:个人觉得mybatis框架很好用,所以框架基本都会选择用mybatis)。其实很多的小伙伴都想自己配置个框架,但是基于怕报错啊

2018-01-28 12:08:49 1768

转载 Spring常用注解(讲解的通俗易懂,很透彻)

使用注解来构造IoC容器用注解来向Spring容器注册Bean。需要在applicationContext.xml中注册。如:在base-package指明一个包[html] view plain copycontext:component-scan base-package="cn.gacl.java"/>  表明c

2018-01-28 12:05:31 312

转载 宏观上把握MyBatis框架

mybatis框架是一个持久层框架,是Apache下的顶级项目。mybatis可以让开发者的主要精力放在sql上,通过mybatis提供的映射方式,自由灵活的生成满足需要的sql语句。MyBatis可以将向preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象(输出映射)。   下面在整体上把握一下mybatis框架,总结一下mybatis的执行流程

2018-01-28 00:23:17 183

转载 mapper代理方法开发dao

使用mapper代理的方法来开发dao时,程序员只需要干两件事即可:需要编写mapper.xml映射文件需要编写mapper接口(相当于dao接口)  从做的工作来看,使用mybatis中使用mapper代理来开发dao会很方便,完全不需要我们去写具体的实现类,只需要写出接口即可,但是接口不能直接拿来用啊,那么我该如何产生它的实现类对象呢?这在下文会给出答案。   所谓

2018-01-28 00:23:04 234

转载 输入映射和输出映射

我们知道mybatis中输入映射和输出映射可以是基本数据类型、hashmap或者pojo的包装类型,这里主要来总结一下pojo包装类型的使用,因为这个在开发中比较常用。1. 输入映射  输入映射,是在映射文件中通过parameterType指定输入参数的类型,类型可以是简单类型、hashmap、pojo的包装类型。假设现在有个比较复杂的查询需求:完成

2018-01-28 00:23:04 1391

转载 MyBatis中的延迟加载

1. 什么是延迟加载  举个例子:如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 所以延迟加载即先从单表查询、需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。   我们来对比一下:关联查询:SELECT orders.*, user.us

2018-01-28 00:22:52 155

转载 MyBatis中的缓存

MyBatis中的一级缓存 缓存的作用是减轻数据库的压力,提高数据库的性能的。mybatis中提供了一级缓存和二级缓存,先来看一下两个缓存的示意图:    从图中可以看出:一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域

2018-01-28 00:22:43 155

转载 SqlMapConfig.xml文件中的配置总结

经过上两篇博文的总结,对mybatis中的dao开发方法和流程基本掌握了,这一节主要来总结一下mybatis中的全局配置文件SqlMapConfig.xml在开发中的一些常用配置,首先看一下该全局配置文件中都有哪些可以配置的东西:配置内容作用用来加载属性文件用来设置全局参数用来设置类型的别名

2018-01-27 20:45:08 532

基于三菱PLC的时序循环电路通用设计方法.pdf

基于三菱PLC的时序循环电路通用设计方法

2021-11-28

A700使用手册(应用篇)chnc.pdf

A700使用手册(应用篇)chnc.pdf

2021-11-28

2021中国HR生存发展现状白皮书-三茅·2号人事部.pdf

2021中国HR生存发展现状白皮书-三茅·2号人事部.pdf

2021-07-21

深度学习与TF-PPT和代.zip

深度学习与TensorFlow 2入门实战(完整版)

2020-05-23

谷粒商城电商项目 ( 大型分布式基础+高级、高可用集群部署)(全栈开发篇)

谷粒商城电商项目 ( 大型分布式基础+高级、高可用集群部署)(全栈开发篇)

2020-05-22

第六期微服务架构-SpringCloudAlibaba代码和文档.zip

第六期微服务架构-SpringCloudAlibaba代码和文档.zip

2020-05-21

MybatisCodeHelperNew-Pro.zip

IDEA Mybatis 插件 MybatisCodeHelperNew-Pro

2020-05-01

亿图图示 9.4.zip

亿图图示 9.4.zip

2020-04-29

Centos7重置密码.txt

Centos7重置密码.txt

2020-04-25

代码规范 .pdf

代码规范 .pdf

2020-04-25

iOS-面试宝典3.0.pdf

iOS-面试宝典3.0.pdf

2020-04-25

iOS面试题2019年度总结188题(下).pdf

iOS面试题2019年度总结188题(下).pdf

2020-04-25

阿里巴巴大规模流媒体的闪烁运行时改进.pdf

阿里巴巴大规模流媒体的闪烁运行时改进.pdf

2020-04-25

JAVA 面试入坟系列(0.0.1) By_萧曵丶.pdf

JAVA 面试入坟系列(0.0.1) By_萧曵丶.pdf

2020-04-13

JAVA 面试入坟系列(思维导图) By_萧曵丶.pdf

JAVA 面试入坟系列(思维导图) By_萧曵丶.pdfJ

2020-03-22

线程编程方面.doc

线程编程方面.doc

2020-03-21

消息中间件面试专题及答案.pdf

消息中间件面试专题及答案.pdf

2020-03-21

小算法题总结.xmind

小算法题总结.xmind

2020-03-21

性能优化PPT.pdf

性能优化PPT.pdf

2020-03-21

最新JAVA面试题总结之数据库.docx

最新JAVA面试题总结之数据库.docx

2020-03-21

最新JAVA面试题总结之框架.docx

最新JAVA面试题总结之框架.docx

2020-03-21

最新JAVA面试题总结之基础.docx

最新JAVA面试题总结之基础.docx

2020-03-21

最新JAVA面试题总结之Redis.docx

最新JAVA面试题总结之Redis.docx

2020-03-21

最新JAVA面试题总结之JavaWeb.docx

最新JAVA面试题总结之JavaWeb.docx

2020-03-21

优秀简历的编写思路.pdf

优秀简历的编写思路.pdf

2020-03-21

智联招聘2017 面试题.pdf

智联招聘2017 面试题.pdf

2020-03-21

中级程序员必备面试题.txt

中级程序员必备面试题.txt

2020-03-21

黑马Nacos jar包分析

黑马Nacos jar包分析 和 protoc-3.17.3-win64

2024-02-05

cloud-source-demo

cloud-source-demo

2024-02-05

麻省理工学院公开课:微分方程课件.zip

麻省理工学院公开课:微分方程课件.zip

2021-12-10

麻省理工学院开放课程.算法导论课件

算法

2021-12-10

三菱QD75定位模块用户手册.pdf

三菱QD75定位模块用户手册

2021-11-28

三菱PLC的QD75M系列-使用教程.pdf

三菱PLC的QD75M系列-使用教程

2021-11-28

三菱PLC的QD75M系列-使用教程(20150410172124).pdf

三菱PLC的QD75M系列-使用教程(20150410172124)

2021-11-28

利用VB和三菱FX_PLC开发小型自控系统.pdf

利用VB和三菱FX_PLC开发小型自控系统

2021-11-28

QD75定位模块教程.pdf

QD75定位模块教程

2021-11-28

电气自动化技术网提供.txt

电气自动化技术网提供

2021-11-28

MR-JE-A技术资料集(Eng)sh030128c.pdf

MR-JE-A技术资料集(Eng)sh030128c

2021-11-28

MT500程序转换成MT8000.pdf

MT500程序转换成MT8000

2021-11-28

FR-F500J使用手册(详细篇).pdf

FR-F500J使用手册(详细篇)

2021-11-28

空空如也

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

TA关注的人

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