如果我将一个类声明为可序列化的,编译器如何知道这个类只需要使用 Serializable 关键字进行序列化。
public class Domain implements Comparable<Domain>, Serializable{
}
如果我将一个类声明为可序列化的,编译器如何知道这个类只需要使用 Serializable 关键字进行序列化。
public class Domain implements Comparable<Domain>, Serializable{
}
编译器不会序列化您的类,您需要编写代码将您的对象写入/读取到输出流。如果您尝试序列化的类没有实现接口,jvm 将抛出运行时错误。
一旦你通过实现 Serializable 接口将一个类标记为 Serializable,JVM 就会把它当作一个可序列化的类。Serialzable 是标记接口,这意味着当您将此接口添加到您的类时,不需要实现任何方法。标记接口被 JVM 特殊处理,只是为了标记它这个类是可序列化的。
当您实际从流中写入或读取对象时,将发生序列化。在此之前,实现 Serializable 的事实没有任何意义。
除了 Juned Ahsan 的回答:
以下是教程:
http://docs.oracle.com/javase/tutorial/javabeans/advanced/persistence.html
http://docs.oracle.com/javase/tutorial/essential/io/objectstreams.html
这是 Javadoc: http ://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html