java序列化和反序列化

本文详细介绍了Java对象序列化和反序列化的过程,包括如何将对象转化为字节流并存储,以及如何从字节流中重建对象。序列化步骤包括创建ObjectOutputStream,调用writeObject()方法。反序列化时,Java通过比较对象的serialVersionUID来验证版本一致性,确保正确反序列化。文中还强调了序列化ID的重要性,不一致会导致反序列化失败。
摘要由CSDN通过智能技术生成

一、在使用序列化之前,先了解,什么是序列化和反序列化?

java对象序列化的意思就是将对象的状态转化成字节流,以后可以通过这些值再生成相同状态的对象。对象序列化是对象持久化的一种实现方法,它是将对象的属性和方法转化为一种序列化的形式用于存储和传输。反序列化就是根据这些保存的信息重建对象的过程。

   序列化:将java对象转化为字节序列的过程。

   反序列化:将字节序列转化为java对象的过程。

二、使用步骤是什么样的?

序列化:

步骤一:创建一个对象输出流,它可以包装一个其它类型的目标输出流,如文件输出流:

ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(“目标地址路径”));

步骤二:通过对象输出流的writeObject()方法写对象:

out.writeObject(object);

步骤如下:

先创建个实体类;
在这里插入图片描述

     其中序列化ID的设置如下图,设置后在类名处ALT+Enter选择后就生成。

在这里插入图片描述
首先创建一个对象输出流ObjectOutputStream,它可以包装一个其它类型的目标输出流,如文件输出流FileOutputStream,并指定存储的位置为“D:/hello.txt”,然后通过对象输出流的writeObject()方法写对象便执行了序列化过程。
在这里插入图片描述
如下图见文件已生成,打开后是乱码,需要特殊的工具打开会显示一串字节序列
在这里插入图片描述
以上,序列化的功能就实现了。

接下来为反序列化步骤实现:
在这里插入图片描述

三、其中涉及到的序列化ID的作用是什么?

   其实,这个序列化ID起着关键的作用,它决定着是否能够成功反序列化!简单来说,java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地实体类中的serialVersionUID进行比较,如果相同则认为是一致的,便可以进行反序列化,否则就会报序列化版本不一致的异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值