Java序列化id
2016-04-27 10:12
267 查看
Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。
当实现java.io.Serializable接口的实体(类)没有显式地定义一个名为serialVersionUID,类型为long的变量时,Java序列化机制会根据编译的class自动生成一个serialVersionUID作序列化版本比较用,这种情况下,只有同一次编译生成的class才会生成相同的serialVersionUID 。
如果我们不希望通过编译来强制划分软件版本,即实现序列化接口的实体能够兼容先前版本,未作更改的类,就需要显式地定义一个名为serialVersionUID,类型为long的变量,不修改这个变量值的序列化实体都可以相互进行串行化和反串行化
当实现java.io.Serializable接口的实体(类)没有显式地定义一个名为serialVersionUID,类型为long的变量时,Java序列化机制会根据编译的class自动生成一个serialVersionUID作序列化版本比较用,这种情况下,只有同一次编译生成的class才会生成相同的serialVersionUID 。
如果我们不希望通过编译来强制划分软件版本,即实现序列化接口的实体能够兼容先前版本,未作更改的类,就需要显式地定义一个名为serialVersionUID,类型为long的变量,不修改这个变量值的序列化实体都可以相互进行串行化和反串行化
相关文章推荐
- Spring定时器--时间设置规则(转载)
- Java Integer 判等误区
- 策略模式--Java篇
- java异常体系
- Java多线程编程实战指南(设计模式篇,黄文海)-之管道线模式
- java中静态代码块的用法 static用法详解
- studio中java文件右下角显示红色j而不是C标识
- JAVA中字符串函数subString的用法小结
- Java文件路径
- java继承关系中成员变量,构造方法,成员方法的关系
- Java中的异常注意点
- Maven那点事儿(Eclipse版)
- 解决mac10.11 提示的未安装java1.6的问题
- Java集合---HashMap源码剖析
- java.net.BindException: Address already in use解决方法
- Spring 4支持的Java 8新特性一览
- 解决Please ensure that adb is correctly located at 'D:\java\sdk\platform-tools\adb.exe' and can be exe
- Groovy轻松入门——通过与Java的比较,迅速掌握Groovy (更新于2008.10.18)
- HBase的Java接口基本操作:创建表插入查询删除
- HDFS原理、命令行接口和Java接口