实现对象的序列化
乐于分享,以下文章由小编分享给大家;
一个对象产生后实际上是在内存中为其开辟了一个存储空间,方便存储信息。对象序列化就是把一个对象变为二进制的数据流的一种方式,并通过对象序列化实现对象的传输或存储。一个对象想被序列化则对象所在类必须实现java.io.Serializable接口:
import java.io.Serialzable;public class Student implements Serializable{private int id;//声明id属性private String name;//声明name属性pulbic Student(int id,String name){//通过构造方法设置属性内容this.id = id;this.name = name;}
public String toString(){//重写toString()方法return “学号: ”+this.id+”姓名: “+this.name;}
}
以后此类对象就可以被序列化了。
要想完成对象的输入或输出,还必须依靠对象输出流(ObjectOutputStream)和对象输入流(ObjectInputStream)。使用对象输出流序列化对象有时也称为序列化。使用对象输入流读入对象的过程有时也称为反序列化。
在对象进行序列化或反序列化操作时,要考虑JDK版本的问题,如果序列化的JDK版本和反序列化的JDK版本不统一则就有可能造成异常。所以在序列化操作中引入了一个serialVersionUID的常量,可以通过此常量来验证版本的一致性,在进行反序列化时JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。
对象序列化的作用,比不一定都向文件中保存,也有可能面向于其他的输入输出。被序列化对象的类必须实现Serializable接口,如果某个属性不希望被保存下来,则使用transient关键字声明。
我们在通过不间断地学习,才能获取真正的知识,从来不满足现在所拥有的知识,不断进取是根本,在编程的世界里也是这样,我喜欢获得新的知识,为获得新的知识兴奋,希望你也是一样,学无止境!!!
(责任编辑:广州达内)