Java集合框架Koloboke详解

简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/50511851 Java集合框架Koloboke详解作者:chszs,未经博主允许不得转载。
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/50511851

Java集合框架Koloboke详解

作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs

Koloboke的目标是替换标准的Java集合和流的API,提供更高效的实现。Koloboke目前的版本主要是替换java.util.HashSet和java.util.HashMap。

Koloboke提供了一套完整的集合原始类型的实现,可以避免开销很大的装箱/拆箱操作,节省了原始类型装箱消耗的内存。

在Koloboke中,HashSet和HashMap比其它专门的实现(比如GS collections、fastutil、HTTP & Trove)要更快,这是因为:

1)相比于其它库,Koloboke对每个entry使用了更少的内存
2)Koloboke目标是把键和值存储在同一行高速缓存中
3)所有的方法都经过了实现优化,而不是像AbstractSet类或AbstractMap类那样委托给框架类(Skeleton Class)

Koloboke的官网: http://chronicle.software/products/koloboke-collections/

Koloboke的特征:

1)极好的兼容Java集合框架(JCF,Java Collections Framework)
2)所有原始专门的集合类都继承了基本的接口(比如Collection、Set、Map)
3)可用于替换标准的JCF
4)Koloboke API for Java 6 and Java 7向前兼容Java 8的新方法
5)快速失败的语义
6)支持null键(可选的),就像java.util.HashMap中的Float.NaN和Double.NaN键的处理那样。

什么时候使用Chronicle Map或Koloboke Map?

使用Chronicle Map的场景:
1)存储的entry超过5亿条
2)在进程之间分布Map
3)使用堆外内存(Off-Heap Memory),因为键和值占用了太多的内存,JVM遭遇GC的痛苦

当不想在进程间共享数据,且存储的entry在5亿条以内,那么Koloboke是更理想的选择。

Koloboke目前的最新版本为0.6.8版。可以从Maven仓库使用它:

<dependency>
    <groupId>net.openhft</groupId>
    <artifactId>koloboke-api-jdk8</artifactId>
    <version>0.6.8</version>
</dependency>
<dependency>
    <groupId>net.openhft</groupId>
    <artifactId>koloboke-impl-jdk8</artifactId>
    <version>0.6.8</version>
</dependency>

Gradle依赖为

dependencies {
    // `jdk8` instead of `jdk6-7` if you use Java 8
    compile 'net.openhft:koloboke-api-jdk6-7:0.6.8'
    runtime 'net.openhft:koloboke-impl-jdk6-7:0.6.8'
}

也可以到这里下载: https://github.com/OpenHFT/Koloboke/releases

目录
相关文章
|
24天前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
25 0
|
29天前
|
算法 Java 数据处理
Java集合框架的优缺点
Java集合框架的优缺点
|
4天前
|
Java 大数据 云计算
Spring框架:Java后台开发的核心
【4月更文挑战第15天】Spring框架在Java后台开发中占据核心位置,因其控制反转(IoC)、面向切面编程(AOP)、事务管理等特性提升效率和质量。Spring提供数据访问集成、RESTful Web服务和WebSocket支持。优势包括高效开发、灵活扩展、强大生态圈和广泛应用。应用于企业级应用、微服务架构及云计算大数据场景。掌握Spring对Java开发者至关重要。
|
7天前
|
存储 Java 编译器
Java集合丛林:深入了解集合框架的秘密
Java集合丛林:深入了解集合框架的秘密
13 0
Java集合丛林:深入了解集合框架的秘密
|
10天前
|
Java BI
Java 获取周,月,年日期集合(统计图)
Java 获取周,月,年日期集合(统计图)
Java 获取周,月,年日期集合(统计图)
|
11天前
|
存储 Java 数据库连接
java使用mp持久化框架,写入5000个字符,但是VARCHAR(255) 会报错
使用Java的MyBatis Plus框架时,如果尝试将超过VARCHAR(255)限制的字符串(如5000个字符)存入数据库,会抛出异常。解决方法是将列类型改为TEXT。可通过在实体类属性上添加`@TableField(typeHandler = JdbcType.CLOB)`注解,如`private String content;`,将属性映射到CLOB类型列,以存储更长字符串。
9 0
|
11天前
|
存储 Java
java反射——设计框架的灵魂
java反射——设计框架的灵魂
|
16天前
|
前端开发 安全 Java
使用Java Web框架:Spring MVC的全面指南
【4月更文挑战第3天】Spring MVC是Spring框架的一部分,用于构建高效、模块化的Web应用。它基于MVC模式,支持多种视图技术。核心概念包括DispatcherServlet(前端控制器)、HandlerMapping(请求映射)、Controller(处理请求)、ViewResolver(视图解析)和ModelAndView(模型和视图容器)。开发流程涉及配置DispatcherServlet、定义Controller、创建View、处理数据、绑定模型和异常处理。
使用Java Web框架:Spring MVC的全面指南
|
18天前
|
Java 关系型数据库 数据库连接
52 类 110 个常用 Java 组件和框架整理
52 类 110 个常用 Java 组件和框架整理
13 0
|
21天前
|
存储 安全 Java
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
30 1