Java序列化和反序列化

序列化:把对象转换为字节序列的过程。

反序列化:把字节对象恢复为对象的过程。

用途:将对象转换为字节序列变成了可存储,可传输的状态。


需要被序列化的对象必须实现了Serializable的接口。

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

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

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

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

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

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


每个需要序列化的类都有一个long型的serialVersionUID

版本号ID

如果不显示添加serialVersionUID,那么在之后对类进行修改的时候(如添加,删除属性等)会抛出异常。因为没有显示UID的时候,系统会通过类似报文摘要算法生成一个UID,当有修改的时候则生成新的UID从而发生冲突,抛出异常。



Java序列化和反序列化_第1张图片
Person类


Java序列化和反序列化_第2张图片
范例使用

你可能感兴趣的:(Java序列化和反序列化)