java序列化与反序列化

使用ObjectOutputStream实现对象的序列化

注意事项:

  1. 序列化类必须实现Serializable接口
  2. 序列化类中对象属性要求实现Serializable接口
  3. 序列化版本号ID serialVersionUID,保证序列化的类和反序列化的类是同一个类
  4. 使用transient 修饰属性,这个属性不能被序列化
  5. 静态属性不能被序列化
  6. 序列化多个对象,可以借助集合实现

使用ObjectInputStream实现对象的反序列化

注意事项:

  1. 在反序列化对象时出现 java.io.EOFException(当输入过程中意外到达文件或流的末尾时,抛出异常。此异常主要被数据输入流用来表明到达流的末尾。注意,其他许多输入操作返回一个特殊值表示到达流的末尾,而不是抛出异常)
  2. java.io.InvalidClassException: com.iostream.Person; local class incompatible: stream classdesc serialVersionUID = 100, local class serialVersionUID = 200 serialVersionUID 两个UID不一致。
原文地址:https://www.cnblogs.com/netu/p/13784770.html