下载此文档

对象序列化为何要定义serialVersionUID的来龙去脉.doc


文档分类:高等教育 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
Forpersonaluseonlyinstudyandresearch;mercialuse博客分类: J2SE 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Session对象,当有10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些seesion先序列化到内存,等要用了,再还原到对象中,说白了,就是能将一个2进制文件变成内存中的对象。在JAVA中,要实现这种机制,只要实现Serializable接口就可以了,先看下面这个简单例子,serialVersionUID稍后引出。我们先定义一个简单的Person类,然后创建这个对象,最后序列化它到一个文件。 Java代码  import ;     public class Person implements Serializable {           private String name;           public String getName() {          return name;      }      public void setName(String name) {           = name;      }  }  import ;  import ;  import ;  import ;     public class WhySerialversionUID {     public static void main(String[] args) throws Exception {     //这里是把对象序列化到文件         Person crab = new Person();  ("");     ObjectOutputStream oo = new ObjectOutputStream      (new FileOutputStream("crab_file"));  (crab);  ();     //这里是把对象序列化到文件,我们先注释掉,一会儿用  //ObjectInputStream oi = new ObjectInputStream  //    (new FileInputStream("crab_file"));  //Person crab_back = (Person) ();  //"Hi, My name is " + ());  //();         }  }  运行完后,我们发现有了一个crab_file文件,这个文件就保存这crab对象在内存中的形态。同样,我们把这部分代码注释掉,运行下面那段还原代码,发现,crab_file文件可以被转化为一个对象。 一切都那么顺利,但是如果在序列化之后,Person这个类发生了改变呢?比如,多了一个成员变量。我们做如下试验,还是先将对象序列化到一个文件中,之后在Person这个类中添加一个成员变量,如下: Java代码  import ;     public 

对象序列化为何要定义serialVersionUID的来龙去脉 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人雾里行舟
  • 文件大小34 KB
  • 时间2019-06-03
最近更新