首页 > 技术文章 > 自定义序列化类注意事项

liuzhidao 2021-01-13 21:59 原文

1、需要实现接口:Serializable
2、当前类提供一个全局常量:serilaVersionUID
3、除了类要实现Serializable接口外,还必须保证其内部所有属性也必须是可序列化的。(默认情况下:基本数据类型可序列化)
4、ObjectOutputStream和ObjectInputStream不能序列化static和transient修饰的成员变量。

而serialVersionUID又是一个非常重要的字段,因为 Java 的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。
在进行反序列化时,JVM 会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,
如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。

推荐阅读