自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 桥接模式

桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。抽象与它的实现分离,并不是说让抽象类与其派生类分离,指的是抽象类和它的派生类用来实现自己的对象。实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。...

2018-03-02 16:52:03 141

原创 备忘录模式

备忘录:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。简单理解就是将当前状态留存并可恢复,很容易理解的一个模式。Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。Originator可根据需要决定Memento存储Originator的哪些内部状态。Me...

2018-03-02 14:00:22 136

原创 适配器模式

适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作

2018-03-02 11:32:40 101

原创 状态模式

状态模式的好处是将与特定状态相关的行为局部化,并且将不同状态的行为分割开来。即是将特定的状态相关的行为都放入一个对象中,由于所有与状态相关的代码都存在于某个ConcreteState中,所以通过定义新的子类可以很容易地增加新的状态和转换。...

2018-03-02 10:56:43 102

原创 抽象工厂

抽象工厂的好处很明显,易于交换产品系列,由于具体工厂类,在一个应用中只需要在初始化的时候出现一次,这就使得改变一个应用的具体工厂变得非常容易,它只需要改变具体工厂即可使用不同的产品配置。它让具体的创建实例过程与客户端分离,客户端是通过它们的抽象接口操纵实例,产品的具体类名也被具体工厂的实现分离,不会出现在客户代码中。缺点是增加功能时,需要改动很多地方,感觉不符合封闭-开放原则。优化的方法是用简单工...

2018-03-02 10:25:39 114

原创 观察者模式

使用观察者模式的动机是什么呢?将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,这样会给维护、扩展和重用都带来不便。 观察者模式所做的工作其实就是在解除耦合。让耦合的双方都依赖于抽象,而不是依赖于具体。从而使得各自的变化都不会影响另一边的变化。...

2018-03-01 14:50:38 107

原创 建造者模式

 以炒菜为例,用建造者模式炒出来的菜就不会少放盐。        它主要是用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。建造者模式的好处就是使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。...

2018-03-01 14:10:38 127

原创 外观模式

    外观模式很容易理解,即将复杂的系统接口信息隐藏,对各个系统的接口整合对外提供一个单一的接口,很常用但不一定知道是这个模式。

2018-03-01 11:25:09 92

原创 模板方法

    模板方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。

2018-03-01 11:00:08 99

原创 工厂方法

可以跟简单工厂对比着来看

2018-03-01 10:20:45 92

原创 代理模式

    以追姑娘为例    代理模式,为其他对象提供一种代理以控制对这个对象的访问。

2018-03-01 09:40:39 98

原创 装饰模式

    大话设计模式,以穿衣为例    Component是定义一个对象接口,可以给这些对象动态地添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorator的存在的。至于ConcreteDecorator...

2018-02-28 17:31:25 117

原创 设计模式的原则

面向对象的四个好处:可维护、可扩展、可复用和灵活性好。单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。简单理解就是做好一件事。开放封闭原则:是说软件实体应该可以扩展,但是不可修改。对于扩展是开放的,对于更改是封闭的。依赖倒转原则:抽象不应该依赖细节,细节应该依赖于抽象,简单理解就是要针对接口编程,不要对实现编程。迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作...

2018-02-28 16:28:12 87

原创 策略模式

策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。    策略模式就是用来封装算法的,但是在实践中,我们可以用它来封装几乎任何类型的规则,只要在分析过程中听到需要在不同时间应用不同的业务规则,就可以考虑使用策略模式处理这种变化的可能性。...

2018-02-28 15:53:57 109

原创 简单工厂模式

大话设计模式,以一个计算器的设计为例有一定的缺点:这个模式只是解决对象的创建问题,而且由于工厂本身包括了所有的具体处理方式,导致每次维护或扩展都要改动这个工厂,以至于代码需要重新编译部署,这真的是一个糟糕的处理方式。...

2018-02-28 14:45:07 97

转载 深入hibernate的三种状态

学过hibernate的人都可能都知道hibernate有三种状态,transient(瞬时状态),persistent(持久化状态)以及detached(离线状态),大家伙也许也知道这三者之间的区别,比如瞬时状态就是刚new出来一个对象,还没有被保存到数据库中,持久化状态就是已经被保存到数据库中,离线状态就是数据库中有,但是session中不存在该对象。但是大家又是否对hibernate的ses...

2018-01-10 10:41:17 186

转载 paxos选举算法原理与推导

Paxos算法在分布式领域具有非常重要的地位。但是Paxos算法有两个比较明显的缺点:1.难以理解 2.工程实现更难。 网上有很多讲解Paxos算法的文章,但是质量参差不齐。看了很多关于Paxos的资料后发现,学习Paxos最好的资料是论文《Paxos Made Simple》,其次是中、英文版维基百科对Paxos的介绍。本文试图带大家一步步揭开Paxos神秘的面纱。 Paxos是什么

2018-01-03 17:30:12 2406 1

转载 hibernate的面试题

http://www.importnew.com/6004.html

2017-11-27 18:55:20 133

转载 rpc

一、RPC简介 RPC,全称为Remote Procedure Call,即远程过程调用,它是一个计算机通信协议。它允许像调用本地服务一样调用远程服务。它可以有不同的实现方式。如RMI(远程方法调用)、Hessian、Http invoker等。另外,RPC是与语言无关的。     RPC示意图 如上图所示,假设Computer1在调用sayHi()方法,对于Computer1而

2017-11-14 16:39:42 209

原创 JVM及java基本知识整理

1.JVM的内存模型 2.垃圾回收算法 3.双亲委派 4.OOM出现的原因及如何处理,如何查看内存的分配(http://www.jianshu.com/p/2fdee831ed03) 5.java异常 6.java集合 7.hashtable,hashmap的区别,hashmap、treemap、concurrentmap的区别 8.泛型 看到一个对JVM总结不错的地址,入口htt

2017-11-14 10:05:06 160

原创 java面试需具备功能

先列出一些提纲 1.JVM及java基础知识 2.数据库 3.缓存 4.并发 5.设计模式 6.SSH框架

2017-11-14 10:01:18 150

转载 spring aop的实现原理----其中之一的jdk代理

简介   前段时间写的java设计模式--代理模式,最近在看Spring Aop的时候,觉得于代理模式应该有密切的联系,于是决定了解下Spring Aop的实现原理。   说起AOP就不得不说下OOP了,OOP中引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。但是,如果我们需要为部分对象引入公共部分的时候,OOP就会引入大量重复的代码。例如:日志功能。   A

2017-10-26 16:19:34 172

原创 spring ioc是如何实现的

简单来说,是通过反射来实现的。

2017-10-26 15:50:50 1030 3

转载 JVM虚拟机问题--为什么要有两个survisor

那么,在JVM的新生代内存中,为什么除了Eden区,还要设置两个Survivor区? 1 为什么要有Survivor区 先不去想为什么有两个Survivor区,第一个问题是,设置Survivor区的意义在哪里?  如果没有Survivor,Eden区每进行一次Minor GC,存活的对象就会被送到老年代。老年代很快被填满,触发Major GC(因为Major GC一般伴随着M

2017-09-21 22:54:40 283

转载 JVM方法区理解

最近项目数据量猛增,需要监控JVM参数并调优,作为一个之前搞C++的新小二,赶紧恶补一下虚拟机的知识,在网上搜集各种资料,总结一下方法区内存布局,如有错误,欢迎指导。 1、JVM内存模型     大多数JVM将内存分配为Method Area(方法区)、Heap(堆)、Program Counter Register(程序计数器)、JAVA Method Stack(JAVA方法栈)、Na

2017-09-21 20:06:44 740

itext5-5.5.12

itext5,处理pdf比较不错的jar包,终于找到完整jar包,分享出来

2017-11-09

空空如也

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

TA关注的人

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