`
wb284551926
  • 浏览: 551580 次
文章分类
社区版块
存档分类
最新评论

kryo工具类

 
阅读更多

import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

 

import com.esotericsoftware.kryo.Kryo;

import com.esotericsoftware.kryo.io.Input;

import com.esotericsoftware.kryo.io.Output;

 

public class KryoSerializer {

 

public static <T> byte[] serialize(T obj) {

Kryo kryo = new Kryo();

//支持对象循环引用(否则会栈溢出)

        kryo.setReferences(true); //默认值就是 true,添加此行的目的是为了提醒维护者,不要改变这个配置

        //不强制要求注册类(注册行为无法保证多个 JVM 内同一个类的注册编号相同;而且业务系统中大量的 Class 也难以一一注册)

        kryo.setRegistrationRequired(false); //默认值就是 false,添加此行的目的是为了提醒维护者,不要改变这个配置

ByteArrayOutputStream os = new ByteArrayOutputStream();

Output output = new Output(os);

kryo.writeObject(output, obj);

output.flush();

return os.toByteArray();

}

 

public static <T> Object deserialize(byte[] bytes, Class<T> clazz) {

ByteArrayInputStream is = new ByteArrayInputStream(bytes);

Input input = new Input(is);

Kryo kryo = new Kryo();

//支持对象循环引用(否则会栈溢出)

        kryo.setReferences(true); //默认值就是 true,添加此行的目的是为了提醒维护者,不要改变这个配置

        //不强制要求注册类(注册行为无法保证多个 JVM 内同一个类的注册编号相同;而且业务系统中大量的 Class 也难以一一注册)

        kryo.setRegistrationRequired(false); //默认值就是 false,添加此行的目的是为了提醒维护者,不要改变这个配置

return kryo.readObject(input, clazz);

}

}

 

分享到:
评论

相关推荐

    kryo4.0.0依赖包

    这通常是因为Kryo需要知道对象的类信息,如果类信息丢失或者不一致,会导致反序列化失败。4.0.0版可能改进了类注册机制,确保了对自定义对象的正确处理。 3. **错误修复**:描述中提到的部分依赖包存在问题,这意味...

    java高效对象序列化反序列化工具kryo-2.21

    总之,Kryo作为Java高效对象序列化和反序列化的工具,因其高性能、内存效率和灵活性而受到广泛青睐。在处理大量数据传输或需要快速序列化操作的场景下,Kryo是一个非常理想的解决方案。通过理解其工作原理和最佳实践...

    Kryo所需的依赖包

    - 分布式系统:Kryo常用于分布式计算框架如Hadoop、Spark,作为数据交换的序列化工具。 - 缓存系统:在Memcached或Redis等缓存系统中,Kryo可以提高数据读写速度。 - 游戏开发:游戏服务器中的状态序列化、网络...

    kryo序列化jar包集合

    1. **依赖管理**:在Android项目中,你需要引入Kryo的库文件,可以通过Gradle或Maven等构建工具添加依赖。 2. **内存管理**:由于Android设备的内存限制,使用Kryo时要谨慎管理内存,避免创建过多的序列化实例。 3...

    kryo4.0.0最新依赖包

    不过,需要注意的是,Kryo不支持序列化final、static和transient修饰的字段,也不支持序列化匿名内部类,除非它们是静态的。 在项目中引入Kryo 4.0.0的依赖包,通常会使用Maven或Gradle这样的构建工具。对于Maven,...

    kryo4.0.0最新依赖包及其demo

    5. 支持泛型:Kryo可以处理带有泛型的类,无需额外配置。 在"Kryo 4.0.0最新依赖包"中,可能包含了以下内容: 1. `kryo-libs.7z`:这个压缩包可能包含Kryo库的JAR文件和其他依赖库,如SLF4J用于日志记录,或者其他...

    基于Kryo序列化机制的RPC协议——Kryonet的应用与研究

    Kryo通过注册类和对象实例,能够高效地序列化和反序列化,尤其是在处理大量的小对象时,其性能优势尤为明显。 Kryonet则是在Kryo的基础上构建的网络通信库,它结合了TCP和UDP两种传输协议,为Java应用提供了一种...

    kryo序列化

    Kryo序列化是一种高效、快速的Java对象序列化框架,被广泛用于数据持久化、网络传输和内存缓存等场景。Kryo库以其优秀的性能在众多序列化库...在实际项目中,结合Kryo的特性与其他工具一起使用,往往能取得更好的效果。

    akka-kryo-serialization.zip

    总的来说,"akka-kryo-serialization"是一个旨在提升 Akka 应用程序性能的工具,特别是对于那些有大量远程Actor交互的系统。它通过利用 Kryo 的高效序列化能力,降低了消息传输的成本,提升了系统的整体性能。开发者...

    KryoJava序列化和克隆框架具有快速高效自动的特点

    总的来说,Kryo作为Java序列化的一个强大工具,对于那些需要高效数据交换或持久化存储的应用,是一个理想的选择。其提供的高速度、高效率和灵活性,使得Kryo在大数据处理、游戏开发以及网络通信等场景中得到了广泛...

    memcached session manager 1.9.6 适用于 tomcat 8 各版本 支持kryo等多种序列化方式

    4. **msm-javolution-5.4.3.1.jar**: Javolution库,提供高性能的通用工具类,可能用于优化内存管理和数据处理。 5. **msm-cglib-3.2.4.jar**: CGLIB库,用于动态生成子类,可能在序列化过程中用到。 6. **msm-...

    ASP.NET源码——[CMS程序]Go.Kryo内容管理系统 1.0.zip

    3. **Entity Framework**:作为数据访问层,Go.Kryo 很可能使用了 Entity Framework,这是一个对象关系映射(ORM)工具,能够简化数据库操作,提高开发效率。 4. **ASP.NET Identity**:用于用户身份验证和授权,...

    ASP.NET-[CMS程序]Go.Kryo内容管理系统1.0.0-public.zip

    ASP.NET是微软公司推出的一种用于构建Web应用程序的框架,它基于.NET Framework,提供了一种高效、易用且功能强大的工具来开发动态网站、Web应用和服务。在这个场景中,我们关注的是一个名为Go.Kryo的内容管理系统...

    constretto-api-2.1.4.zip

    开源项目"exmeso"为我们提供了一个强大的工具,它专注于大规模数据的排序,特别是通过其内置的Kryo模块实现的外部合并排序。本文将详细探讨这个项目的背景、工作原理以及如何使用Kryo进行外部合并排序。 首先,...

    memcached用到的包

    4. **其他辅助库**:可能还会有一些辅助性的库,如netty(用于网络通信)、slf4j(日志框架)或Guava(Google的工具集,包含各种实用工具类)。这些库可以增强客户端的功能并提供更好的日志记录或内存管理。 使用...

    memcach-session-manager(MSM)所需jar包,TOMCAT7

    Memcached Session Manager(MSM)是提升Tomcat7性能和可扩展性的有效工具,通过使用Kryo传输方式,可以实现高效的数据序列化和反序列化。正确配置和使用MSM,可以让分布式Web应用程序受益于更快的响应速度和更好的...

    tomcat做session共享需要的全部jar包

    2. **Javolution**: Javolution是一个高性能的Java库,提供了集合、时间、数学、字符串和其他通用工具类。在Session共享场景下,Javolution可能被用来提高数据处理效率,尤其是处理大量Session数据时。 3. **Kryo**...

    session共享jar包

    5. `asm-3.3.1.jar`:ASM是一个Java字节码操纵和分析框架,它用于动态生成类或者增强已有类的功能。在Session共享中,ASM可能用于生成和修改字节码以支持Kryo的序列化操作。 6. `msm-kryo-serializer-1.6.5.jar`:...

    nginx+tomcat7+memcached

    7. **kryo-serializers-0.10.jar**: Kryo的额外序列化支持库,包含更多的类序列化策略。 8. **asm-3.2.jar**: ASM是一个Java字节码操控和分析框架,可用于生成和修改类文件,可能用于Kryo或其它序列化库。 9. **msm-...

    tomcat8+memcached session共享

    在这个场景中,Kryo可能被用作session数据的序列化工具。 4. `asm-3.3.1.jar`:ASM是一个Java字节码操控和分析框架,用于动态生成类或者增强已有类的功能。在session共享中,它可能用于处理session对象的序列化和反...

Global site tag (gtag.js) - Google Analytics