Jos*_*dan 5 serialization history
我知道序列化是什么,但对我来说,这是一个没有描述它意味着什么的术语.
为什么我们调用序列化序列化?将对象转换为原始数据(以及为此扩充/反序列化)有什么用于与"串行"一词相关的任何内容?谁创造了这个术语,为什么?
Joh*_*ers 10
它可能来自网络和通信,有必要将数据转换为1和0的串行流.
维基百科说:
在计算机科学中,在数据存储和传输的上下文中,序列化是将对象转换为位序列的过程,以便它可以持久存储在存储介质(例如文件或存储器缓冲区)上或传输到网络连接链接.当根据序列化格式重新读取所得到的一系列位时,它可用于创建原始对象的语义相同的克隆.对于许多复杂的对象,例如那些广泛使用引用的对象,这个过程并不简单.
我还记得昨晚我工作的第一个网络项目(1983)使用术语"序列化程序"作为代码的一部分,它将消息从C中的结构转换为要写入网络传输的一系列字节.它必须采用逻辑上表示消息的结构,然后将每个字节输出到线路上.
此代码的作者来自BB&N,因此可以为您提供查找历史记录的方向.
我认为约翰桑德斯是在正确的轨道上,数据作为“流”发送到磁盘或通过网络的事实几乎可以肯定是这个术语的起源。
然而,另一种思考方式是这样的:程序的状态分布在整个内存中,指针/链接指向各处。您有数组、列表、树、调用堆栈、分配的内存堆等,没有特定的顺序。
当您想要保存某些状态时,您无法使用程序中的大部分信息。例如,任何指针值或堆栈偏移量(无论是直接使用还是由语言运行时内部使用等)在下次程序运行时都可能无效,因为堆将用于分配稍微不同系列的内存块。保存这些指针值是没有用的。
为了保存某些状态,您必须“将您的事务按顺序排列”,以便保存的信息只是稍后相关的部分。
| 归档时间: |
|
| 查看次数: |
404 次 |
| 最近记录: |