标签:数字 信息 stat 构造方法 修改 tin object 包名 serial
对象的输出流将指定的对象写入文件的过程,就是将对象序列化的过程;
对象的输入流将指定序列化好的文件读出来的过程,就是对象反序列化的过程。
serialVersionUID是用于记录class文件版本信息的,serialVersionUID这个数字是jvm通过一个类的类名、成员、包名、工程名算出来的一个数字。如果序列化与反序列化的时候可能会修改类成员,那么最好在一开始就给这个类指定一个serialVersionUID,如果一个类已经指定了serialVersionUID,那么在序列化和反序列化的时候,jvm都不会再自己计算class的serialVersionUID了。(使用ObjectInputStream反序列化的时候,ObjectInputStream会先读取文件中的serialVersionUID,然后与本地的class文件的serialVersionUID进行对比,如果两个id不一致,反序列失败)
如果在User类中再添加一个成员变量,而这个变量也是一个class,如Address,那么这个Address类也必须实现Serializable接口。
ObjectInputStream与ObjectOutputStream类所读写的对象必须实现Serializable接口,对象中的transient和static类型成员变量不会被读取和写入。
对象的反序列化创建对象的时候并不会调用构造方法。
标签:数字 信息 stat 构造方法 修改 tin object 包名 serial
原文地址:https://www.cnblogs.com/yuanfei1110111/p/10134449.html