当前位置:  开发笔记 > 编程语言 > 正文

什么是序列化?

如何解决《什么是序列化?》经验,为你挑选了6个好方法。

我开始使用OOP编程,想知道OOP用语中序列化的含义是什么?



1> Andrew Barne..:

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

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


此外,动词"Marshal"和"Unmarshal"与"Serialize"和"Deserialize"同义.
内存中的对象不是已经以最低级别的字节表示吗?

2> Aniket Thaku..:

简单来说,序列化是一个将对象转换为字节流的过程,以便它可以Serializable interface.

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

现在唯一要理解的是如何解释或操纵这些字节流,以便我们获得完全相同的Object /相同状态.有各种方法可以实现这一目标.他们之中有一些是 -

    XML:将对象转换为XML,通过网络传输或将其存储在文件/ db中.检索它并将其转换回具有相同状态的对象.在Java中,我们使用JAXB(用于XML绑定的Java体系结构)库.(从Java 6开始,它与JDK捆绑在一起).

    JSON:将Object转换为JSON(Javascript Object表示法)可以完成相同的操作.同样有GSON库可用于此目的.

    或者我们可以使用OOP语言本身提供的序列化.例如.在Java中,您可以序列化一个Object,使其实现Serializable interface并写入Object Stream.



3> BKSpurgeon..:

图片解释:

雷克斯,我的狗,是连载的!

类比说明:

假设我在电话里和我的伙伴谈话,我告诉他我的新小狗.

这是我的问题:小狗是一种活的,呼吸的哺乳动物.我是怎么想通过电话线传送一只小狗的?我无法将我的小狗放入我的手机接收器.

相反,我必须通过电话传达小狗的表示.换句话说,然后我将我的狗Rex序列化,然后通过电话线向他发送Rex的序列化版本:

{ "name":"Rex", "age":5, "favourite_food": pedigree_choice_cuts, "favourite_game": fetch_ball, "favourite_hobby": wagging_tail }

这是一个完美的表现 - 我的狗的序列化.

摘要:

序列化基本上意味着将我的狗Rex转换成其他东西 - 一个JSON对象 - 然后可以通过电话线传输为一系列的1和0.我在NYC的伙伴然后可以将那些1和0转换回JSON对象 - 这样他就可以完美呈现我的狗Rex.简单!



4> Andy White..:

看看这个,这将给你一个很好的解释:

http://en.wikipedia.org/wiki/Serialization

我认为序列化一词的最常见用法是将二进制对象转换为XML(或其他字符串)表示,以便它可以存储在数据库/文件中,或者通过Web服务调用中的网络发送.反序列化是一个相反的过程 - 将XML /字符串转换回对象.

编辑:您可能遇到的另一个术语是编组/解组.编组与序列化的概念基本相同,解组与反序列化相同.


不一定只是XML,它可以是任何表示,甚至是二进制表示

5> Chamin Wickr..:

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

...

下图显示了序列化的总体过程

...

通过序列化,开发人员可以执行一些操作,例如通过Web Service将对象发送到远程应用程序,将对象从一个域传递到另一个域,将对象作为XML字符串通过防火墙传递,或维护安全性或特定于用户的操作。跨应用程序的信息

从https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts/serialization/

(强调我的)



6> Dave Sherohm..:

序列化是将无序数据(例如对象)转换为一系列令牌的过程,这些令牌可以在以后用于重建原始数据.序列化表单通常是一串文本,但不一定是.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有