ForkJoinTask的简单使用

简述场景合并运算的场景,例如批量数据组合运算。 例如在合并两个来源的数据时,我们往往需要通过两个方法来分别获取数据。当数据量或等待时间过长时,我们可以将这两个方法并行执行来缩短执行时间。 通常使用 通过fork()方法将任务交给任务池异步执行 使...

Callable与Future

Callable两年前我写过一篇Callable的简单应用,如今来看以前写的东西和没写没什么区别。 所以今天我详细记录一下我对于Callable的理解与使用。 设计逻辑Callable与Runnable相似,都是单方法的接口,但Callable存...

简述JDK中的ServiceLoader(服务注册机制)

技术是工具,不是目的,我们学习的目的是让我们在达成目的前,有更多的选择。

技术

短链设计

短链的核心逻辑是链接映射,或者说重定向。

技术

链式调用与Builder

建造者(Builder)模式又是为了方便构造参数,采用链式调用可以更方便地填充对象参数。

技术

使用一个参数来表示多选信息

在开发中我们总是能遇到多选的情形,尤其是在配置中。 一般情况下我们可以使用一对多的存储关系或是append字符串的方式将所有选择项记录下来。但是一对多的存储关系占用资源多,append字符串的解析成本高,有没有更优的方式呢?答案肯定是有的,就是用位运...

技术

Java中接口的优势

接口是一个抽象概念的实例化,它表示了一个类所能实现的方法与属性值。但在Java中,interface作为一个类型,就额外拥有了一些特点。 以下内容基于Java8书写 定义一个接口接口被interface关键字定义且无法被final所描述,自带有abs...

技术

Swagger2不支持泛型复杂嵌套处理

在swagger2中,默认情况下并不会支持泛型复杂嵌套,就像是Map<String, List<Person>>或是List<Map<String, Object>>,如果有这样的返回值的话,访问swa...

技术

利用反射获取泛型的真实类型

众所周知,泛型的本质是强制类型转换,也就是说在编译后,所有的泛型都会变成是Object,并由编译器自动追加类型转换方法。这里就不过多介绍泛型,以下内容默认读者对泛型和反射有一定的了解。 因为泛型的擦除机制,导致在编译后我们无法从一个带泛型的类上直接获...

技术

Java的CAS简述

以下内容基于Java1.8编写 首先需要明白一点,CAS的全称是 __compare and switch__,也就是比较与交换,目的在于对 set 做非阻塞原子操作,常用于多线程环境。 atomic包下的CASatomic包下的类主要是为了对单一数...

技术
123

本站总访问量