黑马程序员技术交流社区
标题:
Java中序列化
[打印本页]
作者:
邓士林
时间:
2015-1-19 23:35
标题:
Java中序列化
本帖最后由 邓士林 于 2015-1-19 23:36 编辑
晚上学习序列化,看api总结<div class="blockcode"><blockquote>/*
当改变此类的结构时,那么序列化文件中存储的对象就不能使用,原因序列化的UID已经发生改变。
我们可以设置类的UID,防止对成员修改导致崩溃。
注意:
1、序列化是采用一个serialVersionUID来关联类
2、序列号在反序列化中验证对象的发送者和接受者是否对应。如果不对应,导致InvalidClassException
3、可序列化类通过声明serialVersionUID字段(必须是static、final、long类型字段)显示声明自己的serialVersionUID
4、如果未显示声明,则序列化运行时,系统基于该类的成员进行计算该类的serialVersionUID,因此建议显示声明,并且为private
5、不能序列化静态成员,只能序列化堆内存中的成员。若果要对不是静态成员序列化,可加transient
*/
import java.io.*;
class Person implements Serializable
{
private static final long serialVersionUID = 42L;
String name;
int age;
Person(String name,int age)
{
this.name = name;
this.age = age;
}
public String toString()
{
return this.name + " ..." + this.age;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2