Java序列化有什么作用

Java序列化的作用有:1、方便在远程调用时对象的解码与编码,就像new对象之间直接调用,不需要像传输对象之间像JSON转换一样转来转去;2、序列化的能力;3、对象可以自定义存储格式。

一、Java序列化的作用

1、方便在远程调用时对象的解码与编码,就像new对象之间直接调用,不需要像传输对象之间像JSON转换一样转来转去

2、序列化的能力:为了在程序中能直接以对象的形式进行保存,直接进行调用

3、对象可以自定义存储格式 

二、序列化的方式

1、Serializable 接口

一个对象想要被序列化,那么它的类就要实现此接口或者它的子接口。

这个对象的所有属性(包括private属性、包括其引用的对象)都可以被序列化和反序列化来保存、传递。

不想序列化的字段可以使用transient修饰。

由于Serializable对象完全以它存储的二进制位为基础来构造,因此并不会调用任何构造函数,因此Serializable类无需默认构造函数,但是当Serializable类的父类没有实现Serializable接口时,反序列化过程会调用父类的默认构造函数,因此该父类必需有默认构造函数,否则会抛异常。使用transient关键字阻止序列化虽然简单方便,但被它修饰的属性被完全隔离在序列化机制之外,导致了在反序列化时无法获取该属性的值,而通过在需要序列化的对象的Java类里加入writeObject()方法与readObject()方法可以控制如何序列化各属性,甚至完全不序列化某些属性或者加密序列化某些属性。

2、Externalizable 接口

它是Serializable接口的子类,用户要实现的writyeExternal()和readExternal() 方法,用来决定如何序列化和反序列化。

因为序列化和反序列化方法需要自己实现,因此可以指定序列化哪些属性,而transient在这里无效。

对Externalizable对象反序列化时,会先调用类的无参构造方法,这是有别于默认反序列方式的。如果把类的不带参数的构造方法删除,或者把该构造方法的访问权限设置为private、默认或protected级别,会抛出java.io.InvalidException: no valid constructor异常,因此Externalizable对象必须有默认构造函数,而且必需是public的。

延伸阅读

什么是序列化

序列化 是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。之后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

为什么实现了java.io.Serializable接口就能序列化

Java自己提供了一种序列化机制,这种机制能将一个对象序列化成二进制形式,用于写入磁盘或输出到网络,同时将从网络或者磁盘中读取的字节数组,反序列化成对象,在程序中使用。

便是实现java.io包下的Serializable接口,使用JDK 提供的两个输入、输出流对象 ObjectInputStream 和 ObjectOutputStream便可以对java对象进行序列化和反序列化。

文章标题:Java序列化有什么作用,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37754

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月10日 下午5:11
下一篇 2023年2月10日 下午5:43

相关推荐

  • vscode为什么打开不了

    Visual Studio Code (VSCode) 是一款非常流行的源代码编辑器,它支持多种编程语言并提供了众多功能。然而,在使用过程中,有时会遇到无法打开的情况。这可能是由于软件冲突、程序文件损坏、用户权限不足、或是软件版本过时等原因造成的。软件冲突是常见的原因之一,这通常是因为系统中已经安装…

    2024年4月3日
    8600
  • 敏捷开发如何应对项目风险

    敏捷开发应对项目风险的方式有持续规划和调整、短周期迭代开发、优先级排序与灵活性调整、建立风险管理机制、充分沟通和协作、持续改进和优化等。详细介绍:1、持续规划和调整,在项目开始阶段,敏捷开发团队会制定一个初步的计划,然后在项目执行过程中不断进行修订和优化,这种做法可以帮助团队更好地应对项目中的不确定性因素和变化;2、短周期迭代开发,每个迭代周期结束后等等。

    2023年10月23日
    56200
  • devops 带来了什么

    开门见山地说,DevOps 带来了技术流程的革新、文化理念的变迁以及市场反应速度的提升。在这些改变中,技术流程的革新表现为软件开发与运维团队的协作更加紧密,流程自动化程度高,可实现更快速的代码迭代和部署。此外,其文化理念的变迁着重于推动开发者与运维人员之间的交流,倡导责任共享,从而降低部门之间障碍,…

    2024年3月26日
    6200
  • 激励理论是什么

    激励理论是指通过特定的方法与管理体系,将员工对组织及工作的承诺最大化的过程。激励理论是关于如何满足人的各种需要、调动人的积极性的原则和方法的概括总结。激励理论有1、内容激励理论;2、过程激励理论;3、行为后果理论;4、综合激励理论。

    2022年11月15日
    4.3K00
  • 开源的原则是什么

    开源的原则有:1、社区;2、透明度;3、开放式协作;4、快速原型制作;5、包容性精英领导体制。其中,开源社区是一群人为实现共同目标而聚集在一起而形成的社区。他们共同的价值观和目标指导决策,并推动开源项目向前发展。

    2022年11月8日
    1.1K00
  • 如何定义需求的优先级

    根据以下几点定义需求的优先级:1、收益;2、惩罚;3、成本;4、风险;5、依赖关系;6、时间敏感性;7、稳定性;8、监管或政策合规。收益是针对变革的宗旨和目标进行衡量的实施需求能够为相关方所带来的好处。

    2023年1月6日
    57800
  • 为什么数据库读写分离能提高数据库的性能

    MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中 的从数据库。 一 什么是读写分离 MySQL Proxy最强大的一项功能是实…

    2023年6月7日
    59800
  • 什么是图灵机

    图灵机又称图灵计算机指一个抽象的机器,是,英国数学家艾伦・麦席森・图灵于1936年提出的一种抽象的计算模型,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人类进行数学运算。

    2023年2月14日
    1.1K00
  • 物业工程部如何管理项目

    物业工程部管理项目的成功依赖于多个关键因素,包括明确的项目规划、高效的团队合作、严格的质量控制、及时的沟通机制、以及持续的风险管理。这些要素共同构成了物业工程项目管理的基石。特别是明确的项目规划,它为项目的顺利实施提供了蓝图和方向。这包括确立清晰的目标、制定详细的进度计划、预算的精确分配、资源的有效…

    2024年4月10日
    9600
  • 项目延期常见原因有哪些

    在项目管理中,延期是一个通常需要避免的问题,但它受多种因素的影响。1、资源分配不当是项目延期的常见原因之一。这涉及到资金、人力、以及设备等资源的安排和管理过程中的失误。详细描述时,资源分配不当会导致执行阶段出现短缺和冗余,从而干扰项目进度,增加工期。 一、概述资源分配不当的影响 未能妥善安排资源会对…

    2023年12月26日
    68100

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部