JAVA编程技术基础:对象的串行化(Serialization)

JAVA编程技术基础:对象的串行化(Serialization),第1张

JAVA编程技术基础:对象的串行化(Serialization),第2张

一.序列化的概念和目的
1。什么是序列化?

对象的生存期通常随着生成该对象的程序的终止而结束。有时,可能需要保存对象的状态,并在必要时恢复它。我们记录自己状态的能力,以便在未来再生。这叫做对象的持久性。对象通过写描述它们状态的数值来记录它们自己。这个过程称为对象的序列化。序列化的主要任务是写出对象实例变量的值。如果交集是对另一个对象的引用,则被引用的对象也应该被序列化。这个过程是递归的,序列化可能涉及到一个复杂树形结构的单一性,包括原始对象、对象的对象、对象的对象等等。对象所有权的层次结构称为图。

2.序列化的目的

Java对象单一性的目标是为Java的运行环境提供一组特性,如下:

1)尽量保持对象序列化简单明了,但是提供一种方法,使其可扩展或者根据开发人员的要求进行定制。

2)序列化机制要严格遵循Java的对象模型。对象的序列化状态应该包含关于类别的安全特征的所有信息。

3)对象的序列化机制要支持Java对象的持久性。

4)对象的序列化机制应该具有足够的可扩展性,以支持对象的远程方法调用(RMI)。

5)对象序列化应该允许对象定义自己的格式,也就是自己的数据流表示,并将接口外部化来完成这个功能。

二。序列化方法
从JDK1.1开始,Java语言就提供了对象序列化机制。在java.io包中,接口序列化作为实现对象序列化的工具,只能序列化实现序列化的类的对象。

Serializable接口中没有方法。当一个类声明实现可序列化接口时,只是表明该类参与了序列化协议,没有任何特殊的方法。下面通过例子介绍如何序列化对象。

1.定义一个可序列化的对象。

如果一个类的对象可以序列化,那么它必须实现Serializable接口。我们将班级学生定义如下:

公共类学生实现Serializable{

int id//学生ID

字符串名称;//名称

int age//年龄

字符串部门//部门

公共学生(整数id,字符串名称,整数年龄,字符串部门

ment){

this.id = id

this.name = name

this.age =年龄;

this.department =部门;

}

}

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » JAVA编程技术基础:对象的串行化(Serialization)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情