千家信息网

Java对象的序列化和反序列化举例分析

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇内容介绍了"Java对象的序列化和反序列化举例分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
千家信息网最后更新 2025年12月03日Java对象的序列化和反序列化举例分析

本篇内容介绍了"Java对象的序列化和反序列化举例分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1、什么是序列化与反序列化?

  序列化:指把堆内存中的 Java 对象数据,通过某种方式把对象存储到磁盘文件中或者传递给其他网络节点(在网络上传输)。这个过程称为序列化。通俗来说就是将数据结构或对象转换成二进制串的过程

  反序列化:把磁盘文件中的对象数据或者把网络节点上的对象数据,恢复成Java对象模型的过程。也就是将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程

2、为什么要做序列化?

  ①、在分布式系统中,此时需要把对象在网络上传输,就得把对象数据转换为二进制形式,需要共享的数据的 JavaBean 对象,都得做序列化。

  ②、服务器钝化:如果服务器发现某些对象好久没活动了,那么服务器就会把这些内存中的对象持久化在本地磁盘文件中(Java对象转换为二进制文件);如果服务器发现某些对象需要活动时,先去内存中寻找,找不到再去磁盘文件中反序列化我们的对象数据,恢复成 Java 对象。这样能节省服务器内存。

3、Java 怎么进行序列化?

  ①、需要做序列化的对象的类,必须实现序列化接口:Java.lang.Serializable 接口(这是一个标志接口,没有任何抽象方法),Java 中大多数类都实现了该接口,比如:String,Integer

  ②、底层会判断,如果当前对象是 Serializable 的实例,才允许做序列化,Java对象 instanceof Serializable 来判断。

  ③、在 Java 中使用对象流来完成序列化和反序列化

    ObjectOutputStream:通过 writeObject()方法做序列化操作

    ObjectInputStream:通过 readObject() 方法做反序列化操作

    


第一步:创建一个 JavaBean 对象

第二步:使用 ObjectOutputStream 对象实现序列化

我们打开a.txt文件,发现里面的内容乱码,注意这不需要我们来看懂,这是二进制文件,计算机能读懂就行了。

错误一:如果新建的 Person 对象没有实现 Serializable 接口,那么上面的操作会报错:

第三步:使用ObjectInputStream 对象实现反序列化

  反序列化的对象必须要提供该对象的字节码文件.class

问题1:如果某些数据不需要做序列化,比如密码,比如上面的年龄?

解决办法:在字段面前加上 transient

那么我们在反序列化的时候,打印出来的就是Person [name=vae, age=0],整型数据默认值为 0

问题2:序列化版本问题,在完成序列化操作后,由于项目的升级或修改,可能我们会对序列化对象进行修改,比如增加某个字段,那么我们在进行反序列化就会报错:

解决办法:在 JavaBean 对象中增加一个 serialVersionUID 字段,用来固定这个版本,无论我们怎么修改,版本都是一致的,就能进行反序列化了

  1. /**

  2. * 序列化ID

*/

private static final long serialVersionUID = 8656128222714547171L;

"Java对象的序列化和反序列化举例分析"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

序列 对象 数据 文件 过程 二进制 接口 服务器 服务 内存 磁盘 网络 内容 字段 方法 版本 问题 分析 办法 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 常德网络安全吗 成都农行软件开发中心怎么样 英特尔服务器装系统卡住 我国持续加强网络安全总体布局 时间序列数据库分析 华为云数据库业务总裁 网络安全简单手抄报怎么画 四川省联网中心网络安全要求 百度地图数据库更新一次 江阴asus服务器维修网点 osg数据库 清远网络安全公司 中国网络技术怎么样 网络安全公益宣传视频2分钟 昆明教育台网络安全公开课 获取数据库表的名称 方舟服务器人物等级设置工具 数据库插入数据过程中建表 私立大学的绩点上国家的数据库吗 卫星互联网概念股亚光科技 网络安全宣传周是第几届 辽宁提供软件开发服务诚信互利 恢复数据库时自增序列 林业网络安全风险研判报告 国际网络安全周活动开展情况 软件开发甲方怎么样 网络安全对我的生活的影响 宣传画网络安全七年级 数据库都有哪些检索功能 数据库表列表怎么看
0