- 博客(23)
- 收藏
- 关注
转载 享元模式
享元模式概述享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。引入应用示例帮助理解该模式代码示例package com.xnn;/** * 形状接口(抽象享元...
2018-11-05 22:59:00 123
转载 观察者模式
观察者模式概述观察者模式是对象的行为模式,又叫做发布-订阅模式、模型-视图模式、源-监听器模式或者从属者模式,这个模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。代码体现由上面的描述,我们设想一个场景:在一个对象的值发生变化时没随即打印出变化后的这个值的二进制、八进制、十六进制表示...
2018-11-05 17:09:00 125
转载 策略模式
的略模式概述问题引入解决方案代码体现package com.xnn.strategy;/** * * 类(接口)描述:策略接口,所有的具体策略都得实现这个接口 * @author xnn * 2018年11月4日下午10:31:14 */public interface Strategy { public double cost(double nu...
2018-11-04 22:51:00 131
转载 桥接模式
桥接模式概述桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。代码示例package com.xnn.eg3;/** * * 类(接口)描述:汽车引...
2018-11-04 21:26:00 129
转载 适配器模式
什么是适配器模式适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类(通常叫Adapter类),该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。...
2018-11-04 12:37:00 149
转载 建造者模式
概述Builder模式也叫建造者模式或者生成器模式,是由GoF提出的23种设计模式中的一种。Builder模式是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有时候面临着"一个复杂对...
2018-11-01 22:35:00 84
转载 原型模式
什么是原型模式这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。原型模式的特点由原型对象自身创建目标对象。也就是说,对象创建这一动作发自原型对象本身。2.目标对象是原型对象的一...
2018-10-30 23:07:00 86
转载 单例模式
什么是单例模式单例模式是一种对象创建型模式,使用单例模式,可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。其实,GoF(《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph J...
2018-10-30 00:07:00 90
转载 Java8新特性——集合底层源码实现的改变
ArrayList 源码分析:jdk7:ArrayList list = new ArrayList();//初始化一个长度为10的Object[] elementDatasysout(list.size());//返回存储的元素的个数:0list.add(123);list.add(345);...当添加第11个元素时,需要扩容,默认扩容为原来的1.5倍。还需要将原有数...
2018-10-29 21:40:00 200
转载 Java8接口新特性
概述Java 8中,你可以为接口添加静态方法和默认方法。从技术角度来说,这是完全合法的,只是它看起来违反了接口作为一个抽象定义的理念。猜想设计初衷可能使为了兼容8以下的jdk Java8出来了个函数式接口,只要声明成函数式接口的接口都只能有一个抽象方法,为了便于扩展,赋予接口这么一个新特性静态方法:使用 static 关键字修饰。可以通过接口直接调用静态方法,并执行其方法体。我们经常...
2018-10-25 17:09:00 99
转载 Java8新特性——Optional类的使用(有效的避免空指针异常)
OPtional类的使用概述到目前为止,臭名昭著的空指针异常是导致Java应用程序失败的最常见原因。以前,为了解决空指针异常,Google公司著名的Guava项目引入了Optional类,Guava通过使用检查空值的方式来防止代码污染,它鼓励程序员写更干净的代码。受到Google Guava的启发,Optional类已经成为Java 8类库的一部分。Optional实际上是个容器:...
2018-10-25 16:27:00 850
转载 Java8新特性——新一套时间API的使用
JDK 1.0中包含了一个java.util.Date类,但是它的大多数方法已经在JDK 1.1引入Calendar类之后被弃用了。而Calendar并不比Date好多少。它们面临的问题是:可变性:像日期和时间这样的类应该是不可变的。偏移性:Date中的年份是从1900开始的,而月份都从0开始。格式化:格式化只对Date有用,Calendar则不行。此外,它们也不是线程安全的;不...
2018-10-25 12:20:00 341
转载 Java8新特性——StreamAPI 的使用
StreamAPI的说明Java8中有两大最为重要的改变。第一个是 Lambda 表达式;另外一个则是 Stream API。Stream API ( java.util.stream) 把真正的函数式编程风格引入到Java中。这是目前为止对Java类库最好的补充,因为Stream API可以极大提供Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。Stream 是 J...
2018-10-24 22:22:00 148
转载 Fork/join框架
Fork/join框架概述就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时),再将一个个的小任务运算的结果进行 join 汇总。Fork/Join 框架与传统线程池的区别采用 “工作窃取”模式(work-stealing):当执行新的任务时它可以将其拆分分成更小的任务执行,并将小任务加到线程队列中,然后再从一个随机线程的队列中偷一个并把它放在自...
2018-10-24 16:44:00 97
转载 java8新特性之——lambda表达式的使用
lambda表达式简介个人理解,lambda表达式就是一种新的语法,没有什么新奇的,简化了开发者的编码,其实底层还是一些常规的代码。Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。Lambda表达式的语法(记得要在jdk1....
2018-10-21 23:50:00 199
转载 Quartz的配置与使用
什么是QuartzQuartz是OpenSymphony开源组织在Job scheduling领域的开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。Quartz是一个任务日程管理系统,一个在预先确定(被纳入日程)的时间到达时,负责...
2018-10-20 14:49:00 181
转载 Zookeeper的安装与配置、使用
Dubbo的介绍如果表现层和服务层是不同的工程,然而表现层又要调用服务层的服务,肯定不能像之前那样,表现层和服务层在一个项目时,只需把服务层的Java类注入到表现层所需要的类中即可,但现在,表现层和服务层这是两个不同的工程,两个系统之间进行通信该怎么办呢?如何实现远程通信?1、Webservice:效率不高基于soap协议。项目中不推荐使用。2、使用restful形式的服务:ht...
2018-10-16 23:07:00 88
转载 图片服务器FastDFS的安装及使用
FastDFS介绍FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。FastDFS架构FastDFS架构包括 Tracker server和 Storage server。客户端请求Track...
2018-10-11 18:26:00 93
转载 nginx学习
Nginx的安装(linux环境下)运行环境要知道Nginx是用c语言开发的,所以要安装c语言的运行环境,还有一些相关的类库。1、需要安装gcc的环境。(在线安装)yum install gcc-c++2、第三方的开发包。PCREPCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的...
2018-10-09 15:20:00 118
转载 装饰模式
装饰模式的概念装饰( Decorator )模式又叫做包装模式。通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。装饰模式的角色和职责抽象组件角色: 一个抽象接口,是被装饰类和装饰类的父接口。具体组件角色:为抽象组件的实现类。抽象装饰角色:包含一个组件的引用,并定义了与抽象组件一致的接口。具体装饰角色:为抽象装饰角色的实现类。负责具体的装饰。引入先来看一...
2018-09-28 14:50:00 63
转载 java工厂模式
简介工厂模式有三种:简单工厂模式,工厂方法模式,抽象工厂模式,这三种都属于工厂模式,但各有不同。简单工厂模式简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。模式中包含的角色及其职责1.工厂(Creator)角色:简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建...
2018-05-26 20:01:00 75
转载 Java代理机制
静态代理静态代理是在编译时就将接口、实现类、代理类一股脑儿全部手动完成,但如果我们需要很多的代理,每一个都这么手动的去创建实属浪费时间,而且会有大量的重复代码 。例如: //声明一个接口 package com.ceshi.proxy; public interface Moveable { //提供一个move方法 void move...
2018-05-22 19:36:00 61
转载 struts2拦截器的实现机制
前言最近老大让每周写一篇技术性的博客,想想也没啥写,就想着随便拿个以前的项目去研究研究五大框架的底层代码。本人水平有限,有不对的地方还望大家勿喷,指正!开始之前先了解下strtus2的工作流程:工作原理图:(1) 客户端(Client)向Action发用一个请求(Request)(2) Container通过web.xml映射请求,并获得控制器(Controller)的名字...
2018-05-11 22:18:00 137
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人