本篇内容主要讲解“Java序列化知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java序列化知识点有哪些”吧!
序列化时将 Java 对象相关的类信息、属性及属性值等等保存起来,反序列化时再根据这些信息构建出 Java 对象。
Java 中进行序列化操作需要实现 Serializable 或 Externalizable 接口。
提供一种简单又可扩展的对象保存恢复机制。
对于远程调用,能方便对对象进行编码和解码,就像实现对象直接传输。
可以将对象持久化到介质中,就像实现对象直接存储。
允许对象自定义外部存储的格式。
主要用于验证版本一致性,每个类都拥有这么一个 ID,在序列化的时候会一起被写入流中,那么在反序列化的时候就被拿出来跟当前类的 serialVersionUID 值进行比较,两者相同则说明版本一致,可以序列化成功,而如果不同则序列化失败。
private static final long serialVersionUID = 1234567890L;
如果一个子类实现了 Serializable 接口而父类没有实现该接口,则在序列化子类时,子类的属性状态会被写入而父类的属性状态将不被写入。所以如果想要父类属性状态也一起参与序列化,就要让它也实现 Serializable 接口。
另外,如果父类未实现 Serializable 接口则反序列化生成的对象会再次调用父类的构造函数,以此完成对父类的初始化。所以父类属性初始值一般都是类型的默认值。
Externalizable 接口主要提供自定义序列化方式,继承 Serializable 接口,提供了 writeExternal 和 readExternal 两个方法控制序列化和反序列化的内容。
默认情况下所有字段都会被序列化
静态字段不会被序列化
transient关键字修饰字段不会被序列化
可通过ObjectStreamField数组来声明类需要序列化的字段
到此,相信大家对“Java序列化知识点有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。