0
点赞
收藏
分享

微信扫一扫

java序列化版本号

祈澈菇凉 2022-04-20 阅读 74
java

序列化版本号作用

  1. JVM在序列化过程识别不同类依据。当序列化版本号不同JVM认为这是两个不同的类)
    即使类的名字相同
  • JVM在识别不同类时先比较类名字(name),如果相同则比较序列号版本号;
    类的名字就好像人身份证上的名字。重名的人有很多个,但要辨别是不是同一个人,查看身份证号即可
  1. class类中实现Serializable接口时JVM会随机给一个序列号版本号
    也可主动进行赋值private static final long serialVersionUID=1L;(一般主动给与序列化版本号给一个1L即可)
  2. 在已经序列化的文件, 但他类已经修改时,如果序列化版本号不一致会异常InvalidClassException

修改类的一些情况

  • 序列号版本相同的情况下
  1. 新修改的类增加了原来类没有的变量,在原来类已经序列化,在反序列化新增加的变量为默认值
  2. 新修改的类删除了原来类的变量,在反序列化以前的类时,该变量也会跟着消失

transient关键字

  1. transient在类中修饰的变量的数据,不参与序列化的过程,反序列化后该变量为java默认值,比如 String s=“11”; 字符串,在序列化和反序列化后 ,得到的是String s=null;
举报

相关推荐

0 条评论