温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java序列化知识点有哪些

发布时间:2021-11-16 11:08:42 来源:亿速云 阅读:100 作者:iii 栏目:大数据

本篇内容主要讲解“Java序列化知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java序列化知识点有哪些”吧!

概况

  • 序列化时将 Java 对象相关的类信息、属性及属性值等等保存起来,反序列化时再根据这些信息构建出 Java 对象。

  • Java 中进行序列化操作需要实现 Serializable 或 Externalizable 接口。

序列化的作用

  • 提供一种简单又可扩展的对象保存恢复机制。

  • 对于远程调用,能方便对对象进行编码和解码,就像实现对象直接传输。

  • 可以将对象持久化到介质中,就像实现对象直接存储。

  • 允许对象自定义外部存储的格式。

serialVersionUID的作用

主要用于验证版本一致性,每个类都拥有这么一个 ID,在序列化的时候会一起被写入流中,那么在反序列化的时候就被拿出来跟当前类的 serialVersionUID 值进行比较,两者相同则说明版本一致,可以序列化成功,而如果不同则序列化失败。

private static final long serialVersionUID = 1234567890L;

父类序列化

如果一个子类实现了 Serializable 接口而父类没有实现该接口,则在序列化子类时,子类的属性状态会被写入而父类的属性状态将不被写入。所以如果想要父类属性状态也一起参与序列化,就要让它也实现 Serializable 接口。

另外,如果父类未实现 Serializable 接口则反序列化生成的对象会再次调用父类的构造函数,以此完成对父类的初始化。所以父类属性初始值一般都是类型的默认值。

Externalizable 接口作用

Externalizable 接口主要提供自定义序列化方式,继承 Serializable 接口,提供了 writeExternal 和 readExternal 两个方法控制序列化和反序列化的内容。

序列化控制

  1. 默认情况下所有字段都会被序列化

  2. 静态字段不会被序列化

  3. transient关键字修饰字段不会被序列化

  4. 可通过ObjectStreamField数组来声明类需要序列化的字段

到此,相信大家对“Java序列化知识点有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI