您的位置:

java什么是串行化,java对象串行化

本文目录一览:

java中的序列化和串行化的区别

假设你想保存一个或多个对象的状态。如果Java不具备串行化能力,就不得不使用某个I/O类写出你想保存的所有对象的实例变量的状态。

串行化简单地说就是“保存这个对象及其所有实例变量Transient,这意味,不会把瞬态变量的值作为对象的串行化状态的一部分包括进来。”。实际上,更有趣的是,显式地将一个变量标识为

将要实现序列化的类必须实现Serializable接口或者是Externalizable接口。

在Serializable接口中没有定义任何方法,而在Externalizable接口中需要实现

public void writeExternal(ObjectOutput out) throws IOException{}以及

public void readExternal(ObjectInput in) throws IOException,ClassNotFoundException{}抽象方法。

一.实现Serializable接口的序列化

package demo;

import java.io.Serializable;

public class Person implements Serializable

{

private String name;

private char sex;

private int age;

public Person(String name,char sex,int age)

{

this.name=name;

this.sex=sex;

this.age=age;

}

public String getName()

{

return name;

}

public void setName(String name)

{

this.name = name;

}

public char getSex()

{

return sex;

}

public void setSex(char sex)

{

this.sex = sex;

}

public int getAge()

{

return age;

}

public void setAge(int age)

{

this.age = age;

}

public String toString()

{

return getName()+", "+getSex()+", "+getAge();

}

}

java,什么叫串行化?

把一个对象变成01串,然后在需要的地方重新恢复成对象。比如可以将对象保存在文件,然后再读出。可以将一个对象通过网络传输。

java:什么是类的串行化?有什么作用?举个栗子呗。

对象的寿命通常随着生成该对象的程序的终止而终止。有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复。我们把对象的这种能记录自己的状态以便将来再生的能力。叫作对象的持续性(persistence)。对象通过写出描述自己状态的数值来记录自己 ,这个过程叫对象的串行化(Serialization-连续) 。串行化的主要任务是写出对象实例变量的数值。如果变量是另一对象的引用,则引用的对象也要串行化。这个过程是递归的,串行化可能要涉及一个复杂树结构的单行化,包括原有对象、对象的对象、对象的对象的对象等等。对象所有权的层次结构称为图表(graph)。

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

1) 尽量保持对象串行化的简单扼要 ,但要提供一种途径使其可根据开发者的要求进行扩展或定制。

2) 串行化机制应严格遵守Java的对象模型 。对象的串行化状态中应该存有所有的关于种类的安全特性的信息。

3) 对象的串行化机制应支持Java的对象持续性。

4) 对象的串行化机制应有足够的 可扩展能力以支持对象的远程方法调用(RMI)。

5) 对象串行化应允许对象定义自身 的格式即其自身的数据流表示形式,可外部化接口来完成这项功能。