Kryo:快速、高效的序列化框架

Kryo是一个快速高效的Java序列化框架,旨在提供快速、高效和易用的API。无论文件、数据库或网络数据Kryo都可以随时完成序列化。Kryo还可以执行自动深拷贝(克隆)、浅拷贝(克隆)。这是对象到对象的直接拷贝,非对象->字节->对象的拷贝。

kryo

安装

Kryo JAR可以在发布页面Maven中央仓库下载。Kryo最新镜像可以在Sonatype仓库找到,包括对master分支的镜像构建。

Maven集成

要使用Kryo的官方发布版本,请将下面脚本添加到pom.xml中:

XHTML

 

1

2

3

4

5

<dependency>

    <groupId>com.esotericsoftware</groupId>

    <artifactId>kryo</artifactId>

    <version>3.0.3</version>

</dependency>

如果遇到问题,可能是因为你的classpath上已经安装了不同版本的asm。可以使用kryo-shaded jar中的asm版本,重新定位到不同的package:

XHTML

 

1

2

3

4

5

<dependency>

    <groupId>com.esotericsoftware</groupId>

    <artifactId>kryo-shaded</artifactId>

    <version>3.0.3</version>

</dependency>

如果要测试最新的Kryo镜像,请在pom.xml中使用下面代码:

XHTML

 

1

2

3

4

5

6

7

8

9

10

11

<repository>

   <id>sonatype-snapshots</id>

   <name>sonatype snapshots repo</name>

   <url>https://oss.sonatype.org/content/repositories/snapshots</url>

</repository>

 

<dependency>

   <groupId>com.esotericsoftware</groupId>

   <artifactId>kryo</artifactId>

    <version>3.0.4-SNAPSHOT</version>

</dependency>

 

快速上手

下面展示了如何使用Kryo:

Java

 

1

2

3

4

5

6

7

8

9

10

Kryo kryo = new Kryo();

// ...

Output output = new Output(new FileOutputStream("file.bin"));

SomeClass someObject = ...

kryo.writeObject(output, someObject);

output.close();

// ...

Input input = new Input(new FileInputStream("file.bin"));

SomeClass someObject = kryo.readObject(input, SomeClass.class);

input.close();

Kryo类负责协调了对象序列化。Output和Input类负责缓存字节并flush到流中(这一步可选)。下面展示了序列化过程的细节和Kryo的优势。

非Maven环境使用Kryo

如果在非Maven环境下使用Kryo,请注意Kryo jar有一些外部依赖,这些JAR也需要添加到你的classpath中。包括MinLog日志库Objenesis库 

主要特性

开发资源

开源地址:https://github.com/EsotericSoftware/kryo

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值