logo头像

Aoho's Blog

设计模式之空指针模式

设计模式之空指针模式

属于新模式。我们在之前介绍了23种设计模式,设计模式诞生多年,设计模式也在逐步增多。本文将会介绍一个常用且容易忽视的模式:空指针模式。 空指针模式的定义在空对象模式中,一个空对象取代NULL对象的实例的检查。NULL对象不是检查空值,...

设计模式之黑板模式

设计模式之黑板模式

黑板模式属于行为型的新模式。 黑板模式的定义黑板模式是观察者模式的扩展,一种常用的架构模式。黑板模式的定义如下: 允许消息的读写同时进行,广泛地交互消息。 黑板模式允许多个消息读写着同时存在,应用中的多种不同数据处理逻辑相互影响和...

Java并发工具类:CyclicBarrier和CountDownLatch

当我们启动一个系统的时候需要初始化许多数据,这时候我们可能需要启动很多线程来进行数据的初始化,只有这些系统初始化结束之后才能够启动系统。其实在Java的类库中已经提供了CountDownLatch、CyclicBarrier这3个类来...

Java 8新特性之CompletableFuture(一)

Future自Java 5开始添加了Future,用来描述一个异步计算的结果。获取一个结果时方法较少,要么通过轮询isDone,确认完成后调用get()获取值,要么调用get()设置一个超时时间。但是get()方法会阻塞调用线程,这种...

Java异步编程接口:Callable和Future

Java异步编程接口:Callable和Future

本文主要讲解平时开发中常用的异步编程的接口:Callable和Future。 创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。如果需要...

Java 8中的Lambda表达式

2014年3月18日,Oracle公司发布了Java SE 8。距离Java 8的发布已经三年,最近正好抽空整理了Java 8的特性如下: 接口的默认方法 Lambda 表达式 函数式接口 方法与构造函数引用 Lambda 作用域 ...