系统学习 Java IO (十二)----数据流和对象流 DataInputStream/DataOutputStream & ObjectInputStream/ObjectOutputStream (2)

想象一下,Person 对象被序列化为磁盘。 然后对 Person 类进行更改。 然后反序列化存储的 Person 对象。 这样,序列化的 Person 对象可能与 Person 类的新版本不对应。
要检测此类问题,实现 Serializable 的类应包含 serialVersionUID 字段。 如果对类进行了重大更改,则还应更改其 serialVersionUID 值。
许多 Java IDE 包含生成 serialVersionUID 的工具,可以使用工具生成的 UID 。

在今天的世界(2015年之后)中,许多 Java 项目使用与 Java 序列化机制不同的机制来序列化 Java 对象。 例如,Java 对象被序列化为 JSON,BSON 或其他更优化的二进制格式。 这具有以下优点:对象也可由非 Java 应用程序读取。 例如,在 Web 浏览器中运行的 JavaScript 可以本地序列化和反序列化 JSON 中的对象。
顺便说一下,这些其他对象序列化机制通常不需要 Java 类实现 Serializabl e。 他们通常使用 Java 反射来检查类,这里是 Java IO 教程,具体要看看 Java Json 的教程了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfgpw.html