下载此文档

理解JAVA对像序列化—(serialVersionUID解释).doc


文档分类:办公文档 | 页数:约2页 举报非法文档有奖
1/2
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/2 下载此文档
文档列表 文档介绍
(摘自网上) java 中序列化的 serialVersionUID 解释 serialVersionUID : 字面意思上是序列化的版本号,这个在刚刚接触 java 编程时,学序列化大家一般都不会注意到,在你一个类序列化后除非你强制去掉了 myeclipse 中 warning 的功能,在你实现序列化的类上会有这个警告,点击会出现增加这个版本号。说说这个版本号得作用: 就是确保了不同版本之间的兼容性,不仅能够向前兼容,还能够向后兼容,即在版本升级时反序列化仍保持对象的唯一性。它有两种生成方式: 一个是默认的 1L ,比如: private static final long serialVersionUID = 1L; 一个是根据类名、接口名、成员方法及属性等来生成一个 64 位的哈希字段,比如: private static final long serialVersionUID = xxxxL; 从两个例子上来说明这个序列化号的作用: 这是一个类实现了序列化,但是并没有显式的声明序列号,在这里说明一下,如果没有显式声明序列号,那么在程序编译时会自己生成这个版本序列号, 程序 1 public class Animal implements Serializable{ public String name; public String no; } 通过这个程序来将上面的一个实体存起来:程序 2 public static void main(String[] args) throws Exception{ Animal an = new Animal(); FileOutputStream f= new FileOutputStream("foo"); ObjectOutputStream oos = new ObjectOutputStream(f); (an); (); } 通过这个程序读取出刚才存储的类:程序 3 public static void main(String[] args) throws Exception{ FileInputStream fis = new FileInputStream("foo"); ObjectInputStream ois = new ObjectInputStream(fis); Animal ani = (Animal)(); (); (); } 这种编译是成功的,但是当你在程序 1 中的类增加一个成员变量的时候,在运行程序 3 ,就会报错: Exception in thread "main" : ; …… at (:562) at (:1583) at (ObjectInputSt

理解JAVA对像序列化—(serialVersionUID解释) 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数2
  • 收藏数0 收藏
  • 顶次数0
  • 上传人cxmckate6
  • 文件大小0 KB
  • 时间2016-04-28
最近更新