首页 课程 师资 教程 报名

Java实体类序列化的介绍

  • 2022-07-28 11:36:09
  • 1117次 动力节点

Java实体类序列化是什么?下面就由动力节点小编来为大家进行介绍。

1.什么是Java的序列化?

序列化就是把对象改成二进制的过程。是可以存储或者传输的过程。

2.序列化有什么用?

我们创建出来的这些对象都存在于JVM堆内存中,只有JVM处于运行状态的时候,这些对象才可能存在。一旦JVM停止,这些对象也就随之消失;但是在真实的应用场景中,我们需要将这些对象持久化下来,并且在需要的时候将对象重新读取出来,Java的序列化可以帮助我们实现该功能。

可以保存在磁盘上或者网络发送。

一般实现java.io.Serializeble可以实例化。

也可以实现java.io.Externalizable来进行实例化。

ObjectInputStream和ObjectOutPutStream进行存储和读取对象。

3.如果希望某些变量不序列化,该怎么做?

变量声明成静态变量 static

变量声明成瞬态变量 transient

4. 静态long类型常量serialVersionUID的作用:

如果没有设置这个值,你在序列化一个对象之后,改动了该类的字段或者方法名之类的,那如果你再反序列化想取出之前的那个对象时就可能会抛出异常,因为你改动了类中间的信息,serialVersionUID是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,当修改后的类去反序列化的时候发现该类的serialVersionUID值和之前保存在问价中的serialVersionUID值不一致,所以就会抛出异常。而显示的设置serialVersionUID值就可以保证版本的兼容性,如果你在类中写上了这个值,就算类变动了,它反序列化的时候也能和文件中的原值匹配上。而新增的值则会设置成null,删除的值则不会显示。

5.也可以将它们转化为一种公共的格式

就如左边的客户端访问右边数据库,一般情况下都是在同一个windows下,如果将服务器部署到linux上,这就设计到不同的主机。

客户端可以调用服务器,所以会传递参数,假如你传递的是字符串,那么双方都是可以识别的,假设你传递的是一个Java对象,那么服务器就不识别不了这个Java对象,本质上Java对象是class字节码,服务器并不一定能识别字节码文件,那么我们把Java对象转化成公共的格式叫做序列化,将公共的格式转化为对象叫做反序列化。而保存到系统文件或者数据库中只是一种表示形式。

以上就是关于“Java实体类序列化的介绍”,大家如果想了解更多相关知识,不妨来关注一下动力节点的Java在线学习,里面的课程内容从入门到精通,细致全面,很适合没有基础的小伙伴学习,希望对大家能够有所帮助。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交