- 博客(13)
- 资源 (8)
- 收藏
- 关注
原创 CopyOnWriteArrayList和CopyOnWriteArraySet
CopyOnWriteArrayList和CopyOnWriteArraySet应用场合一般 是在读多写少的情况,比如黑名单,他们之间的区别就是list和set的区别,但是在实现上CopyOnWriteArraySet使用CopyOnWriteArrayList来实现的,就像set使用了hashmap,treeset使用treemap,下面先看CopyOnWriteArrayList的添加操作.
2016-10-31 20:54:09 664
原创 ArrayBlockingQueue和LinkedBlockingQueue
ArrayBlockQueue和LinkedQueue属于Java.util.current包下的两个封装的线程安全的队列,主要讨论线程安全和阻塞操作的实现 他们之间的关系如下: ArrayBlockQueue: 线程安全和阻塞操作在入队列和取出队列元素都会涉及,先从线程安全进入: 注意:ArrayBlockQueue只有一把锁: /** Main lock guarding al
2016-10-29 14:58:59 428
原创 设计模式(22)-访问者模式
Visitor 思想:表 示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 场景:其 实你不用去理解上面这句话。该模式其实又是一个在代码的物理结构上和Bridge模式很相似的模 式。但是,其语义,其目的,在逻辑上又是不同的。如果说Bridge,以及上述我称为可视为Bridge扩 展的模式中,作为参数的Bridge类,是作为调用类的被访问对象
2016-10-27 21:07:11 268
原创 设计模式(21)-解释器模式
思想:当 有一个语言需要解释执行, 并且你可将该语言中的句子表示为一个抽象语法树时,定义一个解释器,这 个解释器使用该表示来解释语言中的句子。 场景:其 实,从物理结构上,该模式的代码架构看起来可能和Composite模式一模一样,致使其针对的逻 辑语义不同。Composite模式描述一种一般的整体和部分使用接口上的一致性,而Interpreter模 式则侧重于语言解释器的实现构架。 实现:如
2016-10-27 20:41:50 267
原创 设计模式(20)-中介者模式
Mediator 思想:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 场景:该模式主要用来进行降低一组相互关联调用的对象间的耦合度。如果您发现您的系统的某部分的一组对象间调用极其频繁的坏味道的话,可能您 需要考虑使用该模式来进行一些解耦,否则,这些对象中的任何一个的修改,都将可能导致其他对象许多地方的修改,可维护性
2016-10-27 20:23:52 308
原创 设计模式(19)-命令模式
Command 思想:将一个动态的执行过程封装成一个对象,可以像处理数据来处理和管理这样的对象,在需要的时候激发该对象的方法就能执行被封装的执行过 程。 场景:该模式在很多时候非常有用,它使得我们对逻辑上已经激发的行为进行优化成为可能,我们不仅可以根据需要改变一组逻辑上以经济法的活动的 顺序,消冗余操作,撤销不必要的操作等。也可以把活动和操作视为资源一样来管理和重用。同时该模式也是许多事务处理机
2016-10-27 19:23:29 239
原创 设计模式(18)-责任链模式
Chain of Responsibility 思想:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一 个对象处理它为止。 场景:该模式实际上是对人们常会不自觉地去做的一种代码组织方式的总结而已。有的时候一条消息需要被处理,我们当然可以在一个雷的一个方法中 对他进行所有需要的处理。但是,如果要做的处理很复杂的情形,甚至
2016-10-27 19:01:07 315
原创 设计模式(17)-观察者模式
Observer 思想:定 义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所 有依赖于它的对象都得到通知并被自动更新。 场景:上面描述该模式思想的文字可能显得有些拗口,实际上你也不用想得过于复杂。只要你写过任何的基于图形界面的程序,那么实际上您对他是一 点也不该陌生的。它就是我们每一次鼠标键盘敲击都在我们的程序内部流转着的事件机制的基础。当一个事件发生,则通知订阅该事件的对象。
2016-10-27 18:48:39 295
原创 编译构建AliSql
下载: https://github.com/alibaba/AliSQL 放到本地解压: unzip alisql.zip cd <存放编译后文件的目录> cmake <下载的源码目录> 问题1: CMake Error at cmake/readline.cmake:85 (MES
2016-10-19 21:17:40 1002
原创 cmake安装
编译安装cmake 下载cmake源码包cmake-2.8.4.tar.gz,mv到/usr/local/src目录下 [root@localhost ~]# cd /usr/local/src/ [root@localhost src]# tar xzvf cmake-2.8.7.tar.gz [root@localhost src]# cd cmake-2.8.7 [root@local
2016-10-18 14:26:40 11270
原创 rpc(Remote Procedure Call Protocol)简易代码实现
RpcFramework:package rpc;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy
2016-10-11 21:55:59 491
原创 windows下eclipse-luna编译hadoop2.7问题集锦
编译入口: 1、protoc –version’ did not return a version 原因: 没有安装protoc window 环境安装步骤1: 软件准备 (https://github.com/google/protobuf/releases/tag/v2.5.0) protobuf-2.5.0.tar.gz protoc-2
2016-10-10 14:18:26 434
centos7_hadoop2.7.3_编译所需工具
2017-04-17
amoeba-mysql-binary-2.1.0
2016-08-07
ktv程序
2011-06-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人