什么是序列化(serialization)

我开始使用面向对象编程(OOP),并想知道:在 OOP 术语中序列化的含义是什么?

我开始使用面向对象编程(OOP),并想知道:在 OOP 术语中序列化的含义是什么?

216

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

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

132

什么是序列化?

通过图片类比解释:

Rex, my dog, is serialised!

摘要:

序列化意味着将某些东西(例如我的狗雷克斯)转换为一系列 1 和 0-可以运输 / 存储等,然后我的海外朋友可以将这些 1 和 0 翻译回小狗的完美表示(反序列化)。

类比的澄清

朋友们,这是一个类比。我不认为你可以真正序列化一只小狗(还)。你会序列化一个数据结构,或其他一些复杂的对象。(我写了这个答案,所以你可以理解这个概念,以一种有趣的方式,在不到 3 秒的时间内,没有打破你的头反对硬核技术定义),但如果喜欢一个规范的,请查看Wikipedia's entry on serialization

127

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

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

要理解的是如何解释或操纵这些字节流,以便我们获得完全相同的 Object / 相同的状态。有各种方法来实现这一点。其中一些是-

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

JSON:同样可以通过将对象转换为JSON(JavaScript 对象表示法)来完成。

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

21

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

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

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

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

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(570)
无法在Linuxubuntu16.04上安装AWSSessionManager插件
上一篇
外接程序中的 Excel宏不可见
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(51条)