美文网首页
Java对象序列化和反序列化

Java对象序列化和反序列化

作者: whynotybb | 来源:发表于2019-03-22 16:59 被阅读0次

    概念:序列化是指将对象转换为字节序列的过程,反序列化是指将字节序列恢复为对象的过程。

    对象的序列化主要有两种用途:

      1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;

      2) 在网络上传送对象的字节序列。

    与java对象序列化的相关API

     java.io.ObjectOutputStream代表对象输出流,它的writeObject(Object obj)方法可对参数指定的obj对象进行序列化,把得到的字节序列写到一个目标输出流中。

      java.io.ObjectInputStream代表对象输入流,它的readObject()方法从一个源输入流中读取字节序列,再把它们反序列化为一个对象,并将其返回。

      只有实现了Serializable和Externalizable接口的类的对象才能被序列化。Externalizable接口继承自 Serializable接口,实现Externalizable接口的类完全由自身来控制序列化的行为,而仅实现Serializable接口的类可以采用默认的序列化方式 。

      对象序列化包括如下步骤:

      1) 创建一个对象输出流,它可以包装一个其他类型的目标输出流,如文件输出流;

      2) 通过对象输出流的writeObject()方法写对象。

    对象反序列化的步骤如下:

      1) 创建一个对象输入流,它可以包装一个其他类型的源输入流,如文件输入流;

      2) 通过对象输入流的readObject()方法读取对象。

    serialVersionUID的作用:版本号

    凡是实现Serializable接口的类都有一个表示序列化版本标识符的静态变量。

    序列化知识点

    https://www.javastack.cn/article/2017/java-serialize-you-need-know/

    我遇到的问题是父类没有实现序列化,导致子类继承的对象不能序列化。

    相关文章

      网友评论

          本文标题:Java对象序列化和反序列化

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