我开始与面向对象编程(OOP)和想知道:什么是序列化的意义在面向对象的说法?
当前回答
看看这个,它会给你一个很好的解释:
http://en.wikipedia.org/wiki/Serialization
我认为序列化这个术语最常见的用法是将二进制对象转换为XML(或其他字符串)表示形式,这样它就可以存储在数据库/文件中,或者在web服务调用中通过网络发送。反序列化是相反的过程——将XML/字符串转换回对象。
编辑: 您可能遇到的另一个术语是编组/解组。编组基本上是与序列化相同的概念,而解组与反序列化相同。
其他回答
序列化是将Java、c#或任何其他(OOP语言)支持的对象转换为可移植形式的过程。通过这种方式,它可以通过网络传输或存储在磁盘上。对于可序列化的类,它必须实现可序列化的接口。
序列化是将无序数据(如对象)转换为一系列标记的过程,这些标记以后可用于重建原始数据。序列化形式通常是一个文本字符串,但不一定非得是这样。
序列化必须将二进制对象转换为XML(或其他字符串)表示形式,以便将其存储在数据库/文件中或通过web服务调用通过网络发送。反序列化是相反的过程——将XML/字符串转换回对象。
序列化是将数据转换为由字节组成的线性“字符串”。
其他人或多或少也说过同样的事情,但我强调计算机模型要求数据适合一维寻址RAM或持久存储。
大多数“数据”本质上是可序列化的(即使你必须将抽象模型简化为线性模型);不可序列化的是网络连接或复杂的基于状态的机器,如解析器。
Serialization is the process of converting an object into a stream of bytes to store the object or transmit it to memory, a database, or a file. Its main purpose is to save the state of an object in order to be able to recreate it when needed. The reverse process is called deserialization. ... This illustration shows the overall process of serialization ... Through serialization, a developer can perform actions like sending the object to a remote application by means of a Web Service, passing an object from one domain to another, passing an object through a firewall as an XML string, or maintaining security or user-specific information across applications
从https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/serialization/
(强调我的)