java序列化中的两个接口java.io.Serializable 和 java.io.Externalizable
两接口的区别如下
1:
| 关键字 | Serializable | Externalizable |
| static | 修饰的字段不能被序列化 | 修饰的字段可以被序列化 |
| transient | 修饰的字段不能被序列化 | 修饰的字段可以被序列化 |
| servialversionUID | 反序列化时会判断此属性的值是否和序列化时一致 | 反序列化时会判断此属性的值是否和序列化时一致 |
2:Serializable接口只是一个标示性接口,实现此接口的类,不需要实现任何方法。同时Serializable是Externalizable的父接口。
可以通过实现Externalizable来控制类的序列化和反序列化,通过重写Externalizable接口的writeExternal来控制序列化,重写readExternal来控制反序列化。
两接口的相同点
1:如果要将一个类序列化,都要通过ObjectOutputStream类的writeObject()方法,反序列化都要通过ObjectInputStream类的readObeject()方法。

被折叠的 条评论
为什么被折叠?



