JAVA的序列化API,它提供了一个框架,用来将对象编码成一个字节流,以及从字节流编码中重新构建对象。将一个对象编码成一个字节流,这个是序列化过程,反过来就是饭序列化。一旦一个对象被序列化后,则它的编码可以从一个正在运行的虚拟机被传递到另外一个虚拟机上,或者被存储在磁盘上,供以后反序列化使用。序列化技术为远程通信提供了标准的线路,这样我们的JAVABEAN组件结构提供了标准的永久数据格式。
谨慎实现Serializable
要想使一个类的实例可以被序列化,我们只要在声明中加入“implements java.io.Serializable”就可以。正是因为太容易了,所以普遍存在一个误解:程序员只需要做极少的工作就可以支持序列化了。实际情形是十分复杂的。
因为实现Serializable而付出的最大代价是,一旦一个类被发布,则“改变这个类的实现”的灵活性将大大降低。