码迷,mamicode.com
首页 > 其他好文 > 详细

序列化与反序列化

时间:2018-12-18 00:04:13      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:数字   信息   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!