当前位置: 首页 > 图灵资讯 > 技术篇> Java基础:序列化详细介绍

Java基础:序列化详细介绍

来源:图灵教育
时间:2021-12-16 11:11:08

  序列化是把一个物体的状态信息转化成能够被存储或传送的过程。所以串行化是Java开发中非常重要的一环。Java序列化可以保存(持久性)设定的对象,在JVM停止运行后,还可以在以后重新读取保存的对象。

java序列化介绍

  通过java对象序列化,当您保存一个对象时,它的状态集是一个字节集合,在将来,这些字节又被组装成对象。一定要注意,对象序列化保存的是对象的"state",也就是其成员变量。由此可以看出,对象序列化并不集中在类中的静态变量

  怎样序列化。

  在实现java.io.Serializable接口的类的前提下,可以将其序列化。

  serialversionuid作用。

  serialVersionUID用于Java的序列化机制。简而言之,Java序列化机制通过一个判断类的serialVersionUID来验证版本一致性。当执行反序列化时,JVM会将来自字节流的serialVersionUID和本地对应实体类的serialVersionUID进行比较,若同一被视为一致,则可执行反序列化,否则将发生不一致的序列化版本异常,这是一个InvalidCastException。

  如何生成serialversionuid。

  在eclipse或idea中,当实现了Serializable接口后,将在相应行的左端显示一个黄色标记,单击,选择generaterdserialversionID,即可生成如图所示的id。

  privatestaticfinallongserialVersionUID=1518830894504324355L;

  Java基本学习的java序列化简介。

  编码实例

  Java基本学习的java序列化简介。

  Java基本学习的java序列化简介。

  有关序列化和反序列化知识。

  1.在Java中,只要一个类实现了java.io.Serializable接口,就可以序列化它。

  2.对象依赖于ObjectOutputStream和ObjectInputStream进行序列化和反序列化。

  3.虚拟机是否允许反序列化,不仅依赖于类路径和功能代码是否一致,很重要的一点是这两个类的序列化ID是否一致(即privatestaticfinallongserialVersionUID)

  4.序列化没有保存静态变量。

  5.为了同时序列化父类对象,您需要让父类也实现Serializable接口。

  6.Transient关键字的作用是控制变量的序列化,并将关键字放在变量声明之前,可防止将变量序列化到文件中,在反序列化之后,将transient变量的值设置为初始值,例如int类型为0,对象型为空。

  7.服务器端将序列化对象数据发送给客户机,其中有些数据是敏感的,如密码字符串等,当这个密码字段被序列化时,需要加密,如果客户有解密密钥,则仅当客户机反序列化时,要读取密码,这就在一定程度上保证序列化对象的数据安全。

  上面是与您分享的“java基础学习之java序列化简介”。Java是当今世界上使用最广泛的编程语言之一,掌握Java开发技巧会有更多的机会。