序列化和反序列化注意事项

  • 要序列化的必须要实现Serializable接口
  • 序列化类中对象属性也要实现Serializable接口
  • serialVersionUID:序列化版本号ID,用于保证序列化的类和反序列化的类是同一个类

    如上图所示:添加序列化版本号ID以后发现反序列化报异常,因为之前进行序列化和反序列化时并没有添加版本号,反序列化时会自动生成一个版本号ID,此时再自己添加一个版本号ID,后续自己添加的ID肯定和自动生成的ID是不同的,系统就认为序列化的类和要进行反序列化的类不是一个类,自然报异常

把自动生成的ID赋给自定ID即可成功反序列化

  • 使用transient修饰属性,这个属性就不会被序列化


    如上图所示,年龄属性没有被序列化,反序列化不出来

  • 静态属性是不能被序列化的

  • 一次性序列化多个对象:把多个对象加入到一个集合当中,直接序列化这个集合即可(反序列化时记得要强转类型)

posted @ 2022-04-08 17:31  无关风月7707  阅读(74)  评论(0编辑  收藏  举报