我开始与面向对象编程(OOP)和想知道:什么是序列化的意义在面向对象的说法?


当前回答

只要考虑一下下面的想法就能理解它。

序列化:

"hello world".split() returns ['hello', 'world']

反序列化:

" ".join(['hello', 'world']) returns "hello world"

其他回答

序列化是将对象转换为可存储的位序列。

所以你可以保存这个序列到一个文件,db或通过网络发送。

稍后,您可以将其反序列化为实际对象,并在需要时重用它。

Web服务和AJAX是序列化最常见的例子。对象在向客户端发送响应之前被序列化。

序列化是将对象转换为字节流以存储对象或将其传输到内存、数据库或文件的过程。它的主要目的是保存对象的状态,以便在需要时能够重新创建它。

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

反序列化则完全相反——从网络或持久化存储中获取字节流,并将其转换回具有相同状态的Object。

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

XML: Convert Object to XML, transfer it over a network or store it in a file/db. Retrieve it and convert it back to the object with same state. In Java we use JAXB(Java architecture for XML binding) library.(From java 6 it comes bundled with JDK). JSON: Same can be done by converting the Object to JSON (JavaScript Object notation). Again there is GSON library that can be used for this. Or we can use the Serialization that is provided by the OOP language itself. For example, in Java you can serialize an Object my making it implement Serializable interface and writing to Object Stream.

什么是序列化?

图片类比解释:

简介:

序列化意味着将某物(例如我的狗Rex)转换成一系列的1和0 -可以运输/存储等。我的海外朋友可以把这些1和0翻译成小狗的完美表现(反序列化)。

类比澄清

朋友们,这是个类比。我认为你还不能连载一只小狗。您可以序列化数据结构或其他复杂对象。(我写这个答案是为了让您能够以一种有趣的方式,在不到3秒的时间内理解这个概念,而不用绞尽脑汁去理解一个核心的技术定义),但如果您更喜欢一个规范的定义,请查看维基百科关于序列化的条目。

序列化是指当对象的状态可以保存在文件中时,对象(内存块)转换为一种形式(例如)。

就像做饼干一样,对象是一个面团,饼干是一个序列化的面团。

所以通过“序列化”,你可以把cookie发送给你的朋友。

就像这样:-)