美文网首页
serialVersionUID

serialVersionUID

作者: packet | 来源:发表于2019-01-03 23:38 被阅读0次

《阿里巴巴Java开发手册》中有以下规定:


java.io.Serializable是标记接口(里面是空的),未实现此接口的类将无法进行序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。
transient 关键字的作用是控制变量的序列化,在变量声明前加上该关键字,可以阻止该变量被序列化到文件中,在被反序列化后,transient 变量的值被设为初始值,如 int 型的是 0,对象型的是 null。

虚拟机是否允许反序列化,不仅取决于类路径和功能代码是否一致,一个非常重要的一点是两个类的序列化 ID 是否一致,这个所谓的序列化ID,就是我们在代码中定义的serialVersionUID。
场景1:A类有serialVersionUID,序列化之后,改动serialVersionUID,反序列化出错。
场景2:A类有serialVersionUID,序列化之后,增加或改动字段,反序列化成功。
场景3:A类无serialVersionUID,序列化之后,增加或改动字段,反序列化失败。
场景4:A类无serialVersionUID,序列化之后,反序列化成功。

鸣谢:serialVersionUID

相关文章

  • IntelliJ IDEA生成 Serializable 序列化

    为什么要使用 serialVersionUID serialVersionUID 适用于 Java的序列化机制。 ...

  • serialVersionUID

    什么是serialVersionUID serialVersionUID表示:“串行化版本统一标识符”(seria...

  • private static final long serial

    Java中serialVersionUID的解释 serialVersionUID作用:相当于java类的身份证。...

  • 为什么阿里Java规约要求谨慎修改serialVersionUI

    serialVersionUID简要介绍 serialVersionUID是在Java序列化、反序列化对象时起作用...

  • serialVersionUID

    serialVersionUID又是一个非常重要的字段,因为 Java 的序列化机制是通过在运行时判断类的seri...

  • serialVersionUID

    《阿里巴巴Java开发手册》中有以下规定: 虚拟机是否允许反序列化,不仅取决于类路径和功能代码是否一致,一个非常重...

  • serialVersionUID

    serialVersionUID适用于java序列化机制。简单来说,JAVA序列化的机制是通过 判断类的seria...

  • serialVersionUID作用

    Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化...

  • serialVersionUID作用

    描述 实现Serializable接口时,会提示声明serialVersionUID。本文说明serialVers...

  • serialVersionUID介绍

    serialVersionUID的作用 简单来说,Java的序列化机制是通过在运行时判断类的serialVersi...

网友评论

      本文标题:serialVersionUID

      本文链接:https://www.haomeiwen.com/subject/xklcrqtx.html