该接口的定义为:
public interface Serializable { }//大括号内为空。这是一种特殊的接口。 Java的"对象序列化"能让你将一个实现了Serializable接口的对象转换成byte流,这样日后要用这个对象时候,你就能把这些byte数据恢复出来,并据此重新构建那个对象了。Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。当一个对象被序列化的时候,transient型变量的值不包括在序列化的表示中,然而非transient型的变量是被包括进去的。
一个泛型函数:
/** * @param srcObject its class need to implement Serializable * */ @SuppressWarnings("unchecked") public static <T> T deepCopy(T srcObject) throws IOException, ClassNotFoundException{ ByteArrayOutputStream byteStream=new ByteArrayOutputStream(); ObjectOutputStream oos=new ObjectOutputStream(byteStream); oos.writeObject(srcObject); ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream( byteStream.toByteArray())); return (T)ois.readObject(); }