serialVersionUID的说明

转载 2011年01月18日 17:10:00
serialVersionUID 用来表明类的不同版本间的兼容性。
简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,
JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,
可以进行反序列化,否则就会出现序列化版本不一致的异常。


当实现java.io.Serializable接口的实体(类)没有显式地定义一个名为serialVersionUID,类型为long的变量时,
Java序列化机制会根据编译的class自动生成一个serialVersionUID作序列化版本比较用,
这种情况下,只有同一次编译生成的class才会生成相同的serialVersionUID 。

如果我们不希望通过编译来强制划分软件版本,即实现序列化接口的实体能够兼容先前版本,未作更改的类,
就需要显式地定义一个名为serialVersionUID,类型为long的变量,不修改这个变量值的序列化实体都可以相互进行串行化和反串行化。

PS:上面内容来自百度知道http://zhidao.baidu.com/question/46255774.html

相关文章推荐

Java中serialVersionUID的解释

  • 2011年09月02日 11:15
  • 13KB
  • 下载

serialVersionUID的作用以及设置方法(转)

声明:本篇文章是转载的 http://snowlotus.iteye.com/blog/247129   java文件中serialVersionUID的作用 http://blog.csdn....

Java Serializable序列化,反序列化 ,serialVersionUID的作用

Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。如此可以把对象转换成字节流,可以进行网络传输,保持到本地文件,数据库等,增加对象的生命周...

对象序列化为何要定义serialVersionUID

文章出处http://lenjey.iteye.com/blog/513736在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Se...

java中序列化的serialVersionUID解释

serialVersionUID: 字面意思上是序列化的版本号,这个在刚刚接触java编程时,学序列化大家一般都不会注意到,在你一个类序列化后除非你强制去掉了myeclipse中warning的功能,...

关于serialVersionUID的解释

实现java.io.Serializable这个接口是为序列化,serialVersionUID 用来表明实现序列化类的不同版本间的兼容性。如果你修改了此类, 要修改此值。否则以前用老版本的类序列化的...

serialVersionUID的一些知识

serialVersionUID的一些知识我自己在写自己Java的第一个小程序时,碰到了SerialVersionUID,感觉这个知识点还是有必要学习一下的!...
  • qhxjtu
  • qhxjtu
  • 2016年12月30日 12:17
  • 89

Eclipse中serialVersionUID问题陈述及解决方案

Eclipse中The serializable class XXXXXX does not declare a static final serialVersionUID field of type...

private static final long serialVersionUID = 1L;

实现java.io.Serializable这个接口是为序列化,serialVersionUID 用来表明实现序列化类的不同版本间的兼容性。如果你修改了此类, 要修改此值。否则以前用老版本的类序列化的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:serialVersionUID的说明
举报原因:
原因补充:

(最多只允许输入30个字)