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修饰无关。

posted @ 2020-01-02 16:12  远去的列车  阅读(150)  评论(0编辑  收藏  举报