构造器
Serializable序列化时不会调用默认的构造器;
Externalizable序列化时会调用默认构造器;
被序列化字段
Serializable会把对象的所有属性都被序列化和反序列化来保存、传递;
Externalizable需要通过该接口的writeExternal()和readExternal()方法来手动指定哪些属性可以被序列化;
对transient关键字支持
Serializable接口实现类中如果某字段被transient,则不会被序列化;
Externalizable接口实现类中一旦在writeExternal()和readExternal()方法添加了序列化的变量,因此不管该变量是否被transient修饰,都会被序列化
序列化内容
使用Externalizable时,必须按照写入时的确切顺序读取所有字段状态,否则会产生异常;
Serializable接口没有这个要求;