Java序列化问题总结

 1、当父类继承Serializable接口,所有子类都可以被序列化
 2、子类实现了Serializable接口,父类没有,父类中的属性不能序列化(不报错,数据会丢失),但是子类中属性人能正确序列化
 3、如果序列化的属性是对象,这个对象也必须实现Serializable接口,否则会报错
 4、在反序列化时,如果对象的属性有修改或删减,修改的部分属性会丢失,但不会报错
 5、在反序列化时,如果serialVersionUID被修改,那么反序列化时会失败
 6、如果一个父类没有实现Serializable接口,他的内部类如果不是static的,即使实现了序列化接口,也会序列失败。
       因为非静态内部类会保存一个指向父类的类型this变量,而序列化类的所有属性必须实现序列化接口,所以要将内部类设置成静态类
 7、List或者Map容器中包含的泛型类型也必须实现Serializable接口,否则也会报java.io.NotSerializableException

转自:http://xulingbo.net/?p=157


你可能感兴趣的:(java,接口)