可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决对象流读写操作时可能引发的问题(如果不进行序列化可能会存在数据乱序的问题)。 (推荐学习:java课程)
要实现序列化,需要让一个类实现serializable接口,该接口是一个标识性接口,标注该类对象是可被序列化的,然后使用一个输出流来构造一个对象输出流并通过writeobject(object obj)方法就可以将实现对象写出(即保存其状态);
如果需要反序列化则可以用一个输入流建立对象输入流,然后通过readobject方法从流中读取对象。序列化除了能够实现对象的持久化之外,还能够用于对象的深度克隆。
为了演示序列化在java中是怎样工作的,我将使用之前教程中提到的employee类,假设我们定义了如下的employee类,该类实现了serializable 接口。
public class employee implements java.io.serializable{ public string name; public string address; public transient int ssn; public int number; public void mailcheck() { system.out.println("mailing a check to " + name + " " + address); }}
请注意,一个类的对象要想序列化成功,必须满足两个条件:
该类必须实现 java.io.serializable 接口。
该类的所有属性必须是可序列化的。如果有一个属性不是可序列化的,则该属性必须注明是短暂的。
如果你想知道一个 java 标准类是否是可序列化的,请查看该类的文档。检验一个类的实例是否能序列化十分简单, 只需要查看该类有没有实现 java.io.serializable接口。
以上就是java如何实现序列化的详细内容。
