美文网首页
Java序列化高级

Java序列化高级

作者: 唐影若凡 | 来源:发表于2017-02-18 17:59 被阅读0次

声明:原创文章,转载请注明出处。http://www.jianshu.com/u/e02df63eaa87
在上一节Java序列化基础中,介绍了JDK自带的序列化方式。本节,将介绍一些常见的序列化框架。

1、XML和JSON

XML和JSON是两种常见的数据传输格式,由于Json格式使用场景更广,序列化体积小的优点,以下将重点介绍Json序列化以及反序列化。

添加Maven依赖,使用FastJson作为序列化工具,其他的还有Jackson、Gson等Json序列化工具。

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.2.24</version>
</dependency>

依然采用上节中的Person.class作为序列化对象:

public class TestJsonSerializable {
    public static void main(String[] args) {
        Person person = new Person(1001, 18, true, "Jack", "BeiJing");
        // json 序列化
        String jsonStr = JSON.toJSONString(person);
        System.out.println(jsonStr);

        // json 反序列化
        Person p =  JSON.parseObject(jsonStr, Person.class);
        System.out.println(p.toString());
    }
}
 // output
// {"addr":"BeiJing","age":18,"id":1001,"name":"Jack","sex":true}
// Person{id=1001, age=18, sex=true, name='Jack', addr='BeiJing'}

2、Kryo序列化

简单上手,下面的例子是将对象序列化到文件中,然后在从文件中反序列化到内存中。

public class TestKryoSerializable {
    public static void main(String[] args) throws Exception {
        Person person = new Person(1001, 18, true, "Jack", "BeiJing");
        // Kryo 序列化
        Kryo kryo = new Kryo();
        Output output = new Output(new FileOutputStream("Person.dat"));
        kryo.writeObject(output, person);
        output.close();

        // Kryo 反序列化
        Input input = new Input(new FileInputStream("Person.dat"));
        Person p = kryo.readObject(input, Person.class);
        input.close();
        System.out.println(p.toString());
    }
}

引用
https://github.com/EsotericSoftware/kryo#quickstart

相关文章

  • Java序列化与反序列化

    深入理解 JAVA 反序列化漏洞 关于 Java 对象序列化您不知道的 5 件事 Java 序列化的高级认识 ja...

  • Java-序列化-反序列化

    Thanks Java基础学习总结——Java对象的序列化和反序列化java序列化反序列化原理Java 序列化的高...

  • java序列化那些事儿

    java序列化作用 在说java序列化的作用之前,先说下什么是java序列化吧。java序列化是指把java对象转...

  • Java序列化高级

    声明:原创文章,转载请注明出处。http://www.jianshu.com/u/e02df63eaa87在上一节...

  • Java序列化

    Java序列化的几种方式以及序列化的作用 Java基础学习总结——Java对象的序列化和反序列化

  • Java序列化机制

    Java序列化机制 序列化和反序列化 Java序列化是Java内建的数据(对象)持久化机制,通过序列化可以将运行时...

  • Java 序列化 之 单例模式

    序列化相关文章: Java 序列化 之 Serializable Java 序列化之 Externalizable...

  • java 序列化 原理解析

    序列化相关文章: Java 序列化 之 Serializable Java 序列化之 Externalizable...

  • 认识Java序列化

    我的个人博客,认识Java序列化 引言 将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java ...

  • JDK 序列化

    序列化和分序列化概念 什么是序列化和反序列化 Java序列化是指把Java对象转换为字节序列的过程,而Java反序...

网友评论

      本文标题:Java序列化高级

      本文链接:https://www.haomeiwen.com/subject/nhfdwttx.html