Java 序列化--- Kryo使用简单例子

本文详细介绍了Kryo序列化的应用及Kryo池化的实现方式,通过实例展示了如何进行序列化与反序列化操作,以及如何利用Kryo池优化内存管理,避免了频繁创建和销毁Kryo实例导致的性能损耗。

Java 序列化--- Kryo使用简单例子

简单示例

       Kryo kryo = new Kryo();

       Input input = null;

       input = new Input(new FileInputStream(fileName));

       BackupQueueData queueData = kryo.readObject(input, BackupQueueData.class);

        Kryo kryo = new Kryo();

        Output output = null;

output = new Output(new FileOutputStream(fileName));

        kryo.writeObject(output, queueData);                

 

Kryo.Pool

KryoFactory factory = new KryoFactory() {

           public Kryo create() {

              Kryo kryo = new Kryo();

              returnkryo;

           }

       };

       // Simple pool, you might also activate SoftReferences to fight OOMEs.

       KryoPool pool = new KryoPool.Builder(factory).build();

       Kryo kryo = pool.borrow();

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

       TestBean tb = new TestBean();

       tb.setId(1L);

       tb.setAge(20);

       kryo.writeObject(output, tb);

       output.close();

       pool.release(kryo);

 

       // or use a callback to work with kryo (pool.run borrows+releases for

       // you)

      

       TestBean value = pool.run(new KryoCallback<TestBean>() {

           public TestBean execute(Kryo kryo) {

              Input input;

              try {

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

                  returnkryo.readObject(input, TestBean.class);

              } catch (FileNotFoundException e) {

                  // TODO Auto-generated catch block

                  e.printStackTrace();

              }

              returnnull;

           }

       });

        System.out.println(value.getId());

                System.out.println(value.getAge());

Kryo池并不复杂,提供了除了直接构建Kryo实例之外的另一种是用方式。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值