对象序列化为何要定义serialVersionUID的来龙去脉
博客分类:
J2SE
JavaOO算法Eclipse应用服务器
在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是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 " + ());
//();
}
对象序列化为何要定义serialVersionUID的来龙去脉 来自淘豆网m.daumloan.com转载请标明出处.