Java里有两种序列化接口:
(parcable是Android的,不是Java的)
Serializable-自动序列化
通过transient关键字标识不序列化的字段,如:
private transient String content ="本字段不序列化";
Externalizable-自动不序列化
通过writeExternal(ObjectOutput out)标识序列化的输出内容,如:
@Override
public void writeExternal(ObjectOutput out) throws IOException {
out.writeObject("本段内容为序列化的输出");
}
区别
1.若实现的是Serializable接口,则所有的序列化将会自动进行;
2.若实现的是Externalizable接口,则没有任何东西可以自动序列化,需要在writeExternal方法中进行手工指定所要序列化的变量,这与是否被transient修饰无关;
网友评论