[@倚贤][¥20]Java 中,Serializable 与 Externalizable 的区别?
先从定义上说:Serializable是标识接口,标识实现该接口的对象可以被序列化(通过Java自身的ObjectInput, ObjectOutput)。而Externalizable继承自Serializable接口,其具体定义如下:public interface Externalizable extends java.io.Serializable {
void writeExternal(ObjectOutput out) throws IOException;
void readExternal(ObjectInput in) throws IOException, ClassNotFoundException;
}
从功能上说:Serializable只是定义了序列化的标识,至于如何进行部分字段的序列化,可以用三种方式:Transient关键字添加writeObject和readObject方法使用ExternalizableExternalizable接口存在的意义就在于此,可以进行字段序列化的定制。
赞0
踩0