当前位置: 首页 > 知识库问答 >
问题:

什么是序列化?

梁丘飞鸾
2023-03-14

我开始学习面向对象编程(OOP),想知道:在OOP术语中,序列化的含义是什么?

共有2个答案

顾穆冉
2023-03-14

简单地说,序列化是将对象转换成字节流的过程,以便可以通过网络传输或存储在持久存储器中。

反序列化正好相反--从网络或持久性存储中提取一个字节流,并将其转换回具有相同状态的对象。

需要理解的是这些字节流是如何被解释或操作的,以便我们得到完全相同的对象/相同的状态。有各种方法可以实现这一点。有些是-

  1. XML:将对象转换为XML,通过网络传输或存储在文件/数据库中。检索它并将其转换回具有相同状态的对象。在Java,我们使用JAXB(Java XML绑定架构)库。(从Java 6中,它与JDK捆绑在一起)。
  2. JSON:通过将对象转换为JSON(JavaScript对象表示法)也可以完成同样的操作。同样,GSON库可用于此目的。
  3. 或者我们可以使用OOP语言本身提供的序列化。例如,在Java中,您可以序列化对象,使其实现serializable interface并写入对象流。
巫马曜文
2023-03-14

序列化是将内存中的对象转换为字节流的过程,这样您就可以将其存储在磁盘上或通过网络发送。

反序列化是相反的过程:将字节流转换为内存中的对象。

 类似资料:
  • Prufer 序列可以将一个带标号 n 个结点的树用[1,n]中的 n-2 个整数表示。你也可以把它理解为完全图的生成树与数列之间的双射。 显然你不会想不开拿这玩意儿去维护树结构。这玩意儿常用组合计数问题上。 Heinz Prufer 于1918年发明这个序列来证明凯莱定理。 1. Prufer是什么? 把一个无根树变成一个序列,也可以把一个序列变成一个序列 2. 性质 (1)prufer序列与无

  • 本文向大家介绍什么是序列化与反序列化?相关面试题,主要包含被问及什么是序列化与反序列化?时的应答技巧和注意事项,需要的朋友参考一下 序列化:将对象状态转换为可保持或传输的格式的过程。将对象实例的字段及类的名称转换成字节流,然后把字节流写入数据流 反序列化:将流转换为对象。 这两个过程结合起来,可以轻松地存储和传输数据。    

  • 主要内容:序列索引,序列切片,序列相加,序列相乘,检查元素是否包含在序列中,和序列相关的内置函数所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。 为了更形象的认识序列,可以将它看做是一家旅店,那么店中的每个房间就如同序列存储数据的一个个内存空间,每个房间所特有的房间号就相当于索引值。也就是说,通过房间号(索引)我们可以找到这家旅店(序列)中的每个房间(内存空间)。 在 Python 中,序列类型包括字符串、列表、元组、集合

  • 本文向大家介绍什么是 Java 序列化?什么情况下需要序列化?相关面试题,主要包含被问及什么是 Java 序列化?什么情况下需要序列化?时的应答技巧和注意事项,需要的朋友参考一下 Java 序列化是为了保存各种对象在内存中的状态,并且可以把保存的对象状态再读出来。 以下情况需要使用 Java 序列化: 想把的内存中的对象状态保存到一个文件中或者数据库中时候; 想用套接字在网络上传送对象的时候; 想

  • 问题内容: 现在就将Eclipse用于某些Java工作。我的班级名称下划线为黄色。我可以禁止显示警告,也可以仅添加frickin序列号。 我不在乎这两种方式(或者我应该这样做),但是这个序列号到底是什么? 谢谢 问题答案: 它与Java序列化有关。 当类的字段更改时,您将无法再反序列化该类的其他版本。如果尝试,Java将引发异常。 但是,有时字段的更改无关紧要,您想说“反序列化”。为此,请定义此序

  • 序列化就是一种用来处理对象流的机制。将对象的内容流化,将流化后的对象传输于网络之间。 序列化是通过实现serializable接口,该接口没有需要实现的方法,implement Serializable只是为了标注该对象是可被序列化的,使用一个输出流(FileOutputStream)来构造一个ObjectOutputStream对象,接着使用ObjectOutputStream对象的writeO