Java基础:序列化详细介绍
2021-12-16 11:11:08
序列化是把一个物体的状态信息转化成能够被存储或传送的过程。所以串行化是Java开发中非常重要的一环。Java序列化可以保存(持久性)设定的对象,在JVM停止运行后,还可以在以后重新读取保存的对象。
通过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开发技巧会有更多的机会。