1、序列化和反序列化的定义:

(1)Java序列化就是指把Java对象转换为字节序列的过程

Java反序列化就是指把字节序列恢复为Java对象的过程。

(2)序列化最重要的作用:在传递和保存对象时.保证对象的完整性和可传递性。对象转换为有序字节流,以便在网络上传输或者保存在本地文件中。

反序列化的最重要的作用:根据字节流中保存的对象状态及描述信息,通过反序列化重建对象。

总结:核心作用就是对象状态的保存和重建。(整个过程核心点就是字节流中所保存的对象状态及描述信息)

2、json/xml的数据传递:

在数据传输(也可称为网络传输)前,先通过序列化工具类将Java对象序列化为json/xml文件。

在数据传输(也可称为网络传输)后,再将json/xml文件反序列化为对应语言的对象

3、序列化优点:

①将对象转为字节流存储到硬盘上,当JVM停机的话,字节流还会在硬盘上默默等待,等待下一次JVM的启动,把序列化的对象,通过反序列化为原来的对象,并且序列化的二进制序列能够减少存储空间(永久性保存对象)。

②序列化成字节流形式的对象可以进行网络传输(二进制形式),方便了网络传输。

③通过序列化可以在进程间传递对象。

4、序列化算法需要做的事:

① 将对象实例相关的类元数据输出。

② 递归地输出类的超类描述直到不再有超类。

③ 类元数据输出完毕后,从最顶端的超类开始输出对象实例的实际数据值。

④ 从上至下递归输出实例的数据

什么是序列化和反序列化?相关推荐

  1. [Java]LeetCode297. 二叉树的序列化与反序列化 | Serialize and Deserialize Binary Tree

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  2. 序列化和反序列化实现

    1. 什么是序列化? 程序员在编写应用程序的时候往往需要将程序的某些数据存储在内存中,然后将其写入文件或是将其传输到网络中的另一台计算机上以实现通讯.这个将程序数据转换成能被存储并传输的格式的过程被称 ...

  3. Json的序列化和反序列化

    1.引用命名空间: using System.Runtime.Serialization; 2.json的序列化和反序列化的方法: publicclass JsonHelper { ///<su ...

  4. C#实现对象的Xml格式序列化及反序列化

    要序列化的对象的类: [Serializable] public class Person { private string name; public string Name { get { retu ...

  5. c语言xml序列化,C# XML和实体类之间相互转换(序列化和反序列化)

    我们需要在XML与实体类,DataTable,List之间进行转换,下面是XmlUtil类,该类来自网络并稍加修改. using System; using System.Collections.Ge ...

  6. 十三、序列化和反序列化(部分转载)

    json和pickle序列化和反序列化 json是用来实现不同程序之间的文件交互,由于不同程序之间需要进行文件信息交互,由于用python写的代码可能要与其他语言写的代码进行数据传输,json支持所有 ...

  7. java培训教程分享:Java中怎样将数据对象序列化和反序列化?

    本期为大家介绍的java培训教程是关于"Java中怎样将数据对象序列化和反序列化?"的内容,相信大家都知道,程序在运行过程中,可能需要将一些数据永久地保存到磁盘上,而数据在Java ...

  8. K:java中的序列化与反序列化

    Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?以下内容将围绕这些问题进行展开讨论. Java序列化与反序列化 简单来说Java序列化是指把Java对象转 ...

  9. json的序列化与反序列化

    json 是一种轻量级的数据交换格式,也是完全独立于任何程序语言的文本格式. 本文介绍json字符串的序列化与反序列化问题. 序列化 是指将变量(对象)从内存中变成可存储或可传输的过程. 反序列化 是 ...

  10. 深入分析Java的序列化与反序列化

    阅读目录 Java对象的序列化 如何对Java对象进行序列化与反序列化 序列化及反序列化相关知识 ArrayList的序列化 ObjectOutputStream 总结 序列化是一种对象持久化的手段. ...

最新文章

  1. 2012百度之星冬季赛第二场第二题 消去游戏I
  2. 3.1.1_Spring如何加载和解析@Configuration标签
  3. 【面试题22】栈的压入、弹出序列
  4. C++基础::一些接口汇总
  5. 听说你在生产环境下还没关闭Swagger2,算你猛
  6. Word如何快速绘制你需要的作文稿纸
  7. 64qam带宽计算_滚降系数为0.5的64QAM信号,数据速率若为_____,则带宽为______。
  8. eclipse快捷键(alt+/)不起作用的解决办法
  9. 怎样写好一篇高质量的技术文章?
  10. STM32/GD32 IAP/Bootloader升级APP研究以及编程实现、hex文件格式
  11. 微信小程序.阿里巴巴矢量图标库iconfont使用
  12. java8中switch不能,switch 语句
  13. 查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名...
  14. 不限空间大小 会赚钱的网盘 收益模式详解
  15. 【数据结构/C语言版】【图】邻接表存储
  16. IC设计职位介绍之“模拟版图工程师”
  17. 【服务器数据恢复】服务器硬盘黄灯的数据恢复案例分享
  18. 盘点|2021年最受欢迎Linux桌面操作系统前十名
  19. 单元格只能下拉框选_Excel 如何做下拉框多选?
  20. 用Visio画时序分析波形图

热门文章

  1. python高阶:魔法函数
  2. nginx扩容(重点集群化处理)
  3. Mysql添加用户,给用户授权
  4. Linux 之 ATT汇编语言 mov、add、sub指令、数据段
  5. node + multer 实现文件上传
  6. 航海王热血航线显示服务器,航海王热血航线游戏登录排队进不去解决方法
  7. 全能计算机怎么玩游戏,新买的电脑配置很好 ,测验玩游戏全能玩 。但是进入游戏后fps很低 不是很高 有点卡 是不是...
  8. 手机(Android)刷NetHunter安装指南,无需ssh执行kali命令, NetHunter支持的无线网卡列表!
  9. 今日头条的安卓适配方案,值得收藏
  10. 数位DP学习整理(数位DP看完这篇你就会了)