Java序列化
参考这篇:
java序列化,看这篇就够了
补充内容,在自定义序列化规则writeObject和readObject方法中,以下两个方法按惯例写在方法中的第一行;这两方法默认会序列化所有的non-static和non-transient字段
public void defaultWriteObject() throws IOException;
public void defaultReadObject() throws IOException, ClassNotFoundException
e.g
private void writeObject(ObjectOutputStream o) throws Exception{
o.defaultWriteObject();
o.writeInt(salary.getBasePay());
}
private void readObject(ObjectInputStream i) throws Exception{
i.defaultReadObject();
salary = new Salary(i.readInt(),0);
}
另外,若实现的是Externalizable接口,则没有任何东西可以自动序列化,需要在writeExternal方法中进行手工指定所要序列化的变量,这与是否被transient修饰无关。