我知道序列化是,但对我而言,这个术语并没有描述它的含义。
为什么我们调用序列化序列化?将对象转换为原始数据(以及为此扩充/反序列化)有什么用于与“串行”一词相关的任何内容?谁创造了这个术语,为什么?
答案 0 :(得分:10)
可能来自网络和通信,需要将数据转换为1和0的串行流。
在计算机科学中,在语境中 数据存储和传输, 序列化是一个过程 将对象转换为序列 的位数,以便它可以持久化 存储介质(例如文件或文件) 内存缓冲区)或通过 网络连接链接。当。。。的时候 产生的一系列比特被重读 根据序列化格式, 它可以用来创建一个 语义相同的克隆 原始物体。对于许多复杂的 对象,例如那些对象 广泛使用参考文献,这个 过程并不简单。
昨晚我还记得,我工作过的第一个网络项目(1983年)使用术语“序列化程序”代码部分将C语言中的结构消息转换为要写入网络的一系列字节运输。它必须采用逻辑上表示消息的结构,然后将下一个之后的每个字节输出到线路上。
此代码的作者来自BB& N,因此可以为您提供查找历史记录的方向。
答案 1 :(得分:4)
序列化将数据结构和指针中的数据转换为一系列字节,这些字节旨在保存在顺序介质上,例如硬盘或通过串行连接等方式传输。
答案 2 :(得分:4)
我认为John Saunders走在正确的轨道上,数据作为“流”发送到磁盘或网络的事实几乎肯定是这个术语的起源。
另一种思考它的方式是这样的:程序的状态遍布整个内存,指针/链接指向所有地方。您有阵列,列表,树,调用堆栈,已分配内存的堆等,没有特定的顺序。
如果要保存某些状态,则无法在程序中使用大量信息。例如,任何指针值或堆栈偏移量(无论是直接使用还是由语言运行库在内部使用等)都可能在下次程序运行时无效,因为堆将用于分配稍微不同的内存块系列。保存这些指针值是没用的。
要保存某些州,您必须“妥善处理您的事务”,以便保存的信息只是稍后相关的部分。
答案 3 :(得分:3)
Serial表示一个接一个。因此,它成为一个长字节流。
答案 4 :(得分:1)
它基本上只是指订单中的一系列物品。序列化这个词在文献中也有用过。
答案 5 :(得分:0)