写一篇文章总不知道从哪开始,那就从它的定义开始吧,将一个对象编码成一个字节流,称做将对象序列化(serialization),相反的处理过程就为反序列化(deserializing)。对象一旦被序列化,它就可以从一台虚拟机迁移到另一台虚拟机,或者保存到磁盘,或者网络传输,待反序列化使用。
当然javabean被实例化非常的简单,只需要 implements Serializable 即可。但是用起来就没那么容易了。 开始不理解对象为什么要实例化,把对象实例化只是因为有些框架需要只处理Serializable类,那就直接 implements Serializable ,有warning,就再加一个serialVersionUID,万事大吉。直到有一天本地Serializable bean 运行正常,而到了测试环境报 SerializableException,原来是因为本地bean 加了一个属性。这才知道实例化还是有弊端,effective java 描述如下:
1、降低了‘改变类实现’的灵活性
2、增加了出现bug 和安全漏洞的可能性
3、测试负担加重